Virtualization Technologies
Docker vs Hypervisor — Containers vs Virtual Machines
Wednesday, April 21, 2021
Category \ Technology | Docker [Containers] | Hypervisor [Virtual Machines] |
Docker vs. Virtual Machines | ||
OS Support and Architecture | No Guest OS, Docker containers hosted on a single physical server with a host OS, which shares among them. Sharing the host OS between containers makes them light and increases the boot time. Docker containers are considered suitable to run multiple applications over a single OS kernel. | Host OS and the Guest OS inside each VM. Guest OS can be any OS, like Linux or Windows, irrespective of host OS. |
Security | Providing root access to applications and running them with administrative premises is not recommended in the case of Docker containers because containers share the host kernel. The container technology has access to the kernel subsystems; as a result, a single infected application can hack the entire host system. | Virtual machines are stand-alone with their kernel and security features. Applications needing more privileges and security run on virtual machines. |
Portability | Docker containers packages are self-contained and can run applications in any environment, and since they do not need a guest OS, they can be easily ported across different platforms. Also, containers being lightweight [MBs] can be started and stopped in very less time compared to virtual machines | VMs are huge in size [GBs] because each include standalone OS. Not easy moved to a different platform without incurring compatibility issues. |
Category \ Technology | Docker [Containers] | Hypervisor [Virtual Machines] |
Docker vs. Virtual Machines |
Performance | The lightweight architecture of Docker containers is less resource-intensive than virtual machines. Most times one application per Container. | VMs are more resource-intensive than Docker containers as the virtual machines need to load the entire OS to start. One OS in each VM, and usually many apps running in this OS. |
Boot-Time | Boots in a few seconds. | It takes a few minutes for VMs to boot. |
Runs on | Dockers make use of the execution engine. | VMs make use of the hypervisor. |
Memory Efficiency | No space is needed to virtualize, hence less memory. | Requires entire OS to be loaded before starting the surface, so less efficient, more memory. |
Isolation | Prone to adversities as no provisions for isolation systems. | Interference possibility is minimum because of the efficient isolation mechanism. |
Deployment | Deploying is easy as only a single image, containerized can be used across all platforms. | Deployment is comparatively lengthy as separate instances are responsible for execution |
Usage | Docker has a complex usage mechanism consisting of both third party and docker managed tools. | Tools are easy to use and simpler to work with. |
Reuse of Resources and Libraries | Docker Containers can reuse Resources and Libraries from other Containers, taking less disk space. | No reuse between VMs, Redundant copies exist, demanding more disk space. |
Usually, Organizations are making use of the hybrid approach mostly as the choice between virtual machines and Docker containers depends upon the kind of workload offered.
Hypervisor-2 vs Docker
Hypervisor-1 vs Docker
Hypervisor-2 vs Hypervisor-1
Note: Hypervisor 1 [Servers mainly] vs Hypervisor 2 [Desktop mainly]