A virtual machine (VM) is an operating system or application environment installed on software, which imitates dedicated hardware. This page gathers resources about the VM vs. containers comparison, including a comparison of strengths and weaknesses, application portability, security and isolation, and more.
Table of Contents:
Below we have compiled publicly available sources from around the world that present views on Containers vs Virtual Machines.
Best Practices for Running Containers and Kubernetes in Production Covering security, governance, monitoring, storage, networking, container life cycle management and container orchestration.
The advantages of a container outnumber those of a virtual machine, including the fact that containers are more lightweight and use fewer resources than virtual machines. A crucial milestone in the rapid adoption of containers in production environments is the issue of security.
If you just want to have a number of separate instances to run applications, a container environment often provides greater efficiency but If you want to have best isolation of environments and come from a server virtualization perspective, then system virtualization may be more relevant.
What is a Container — Containers are a method of virtualization that packages an application's code, configurations, and dependencies into building blocks for consistency, efficiency, productivity, and version control. This page gathers resources about containers, including technical definitions and comparisons.
What is a Container Image — A container image is a self-contained piece of software that has everything in it needed to run – code, tools, and resources. This page gathers resources about container images, including tutorials and container-related conferences.
What is a Container Image Repository — A container image repository is a collection of related container images, usually providing different versions of the same application or service. This page gathers resources about image repositories, including tutorials and specific environments in which image repositories are used.
Container Image Registries — A container image registry is a service that stores container images, and is hosted either by a third-party or as a public/private registry such as Docker Hub, Quay, and so on. This page gathers resources about container image registries, including tutorials and specific technologies or tools related to container image registries.
Containers and Agile Development — Agile software development and delivery via containerization are tightly related. This page includes resources about the benefits of using containers in the agile development cycle.
Containers vs Virtual Machines — A virtual machine (VM) is an operating system or application environment installed on software, which imitates dedicated hardware. This page gathers resources about the VM vs. containers comparison, including a comparison of strengths and weaknesses, application portability, security and isolation, and more.
Containers vs Traditional Application Model — The traditional application model is a model in which applications are executed directly on virtual machines or on bare-metal servers. This page gathers resources about the difference between containerized infrastructure and the traditional application model.
Containers and Microservices — Microservices or microservices architecture describes a particular way of designing software applications as suites of independently deployable services. This page gathers resources about using containers to build a microservices architecture and the benefits of combining microservices with containers.
Service Mesh — A service mesh is a configurable infrastructure layer for a microservices application. It makes communication between service instances flexible, reliable, and fast. This page gathers resources on service mesh architecture, examples an the Istio project.
Refactoring a Monolith to Microservices — Today’s requirements on modern web applications demand high availability and scalability for which a microservice architecture has shown to be a promising solution. However, building a microservice architecture from scratch is sometimes not possible when monolithic web applications are already in place and cannot be replaced. Instead, it is required to break up this monolith step-by-step into microservices.