Containers vs Virtual Machines
Maintaining a large software application is not an easy task since it may contains lots of dependencies and Operating System related configurations. What if you can create an OS image which already contains required libraries and configuration that needs to run you application? Then that would be really easy for software deployer to deploy their application easily on a cloud without doing a tedious task of setting up an OS environment. One possible solution to overcome this problem is to use a Virtual Machine. You can install all libraries, setting up configurations and take an image. When you need to deply the application you can simply start the machine with that image. A VM provide complete low level machine to run an Operating System. But it does not perform faster due to VM’s operational overhead. In this case Container technology comes to rescue.
VM is nothing more than a computer that executes a program. VM is running on top of software which is called Hypervisor. Here the physical computer is known as the Host Machine and the VM that running top of Hypervisor known Guest Machine, Containers act the same as the VM, but the difference is that Containers use host machine OS instead of hardware virtualization to run as a VM. Each containers has its own userspace and runs on top of host OS. This makes container much faster than VMs.
Hypervisors Technology | Containers Technology | ||
---|---|---|---|
Kernel Virtual Machine (KVM) | Type 1 | Docker | |
VirtualBox | Type 2 | Podman | |
Hyper-V | Type 2 | CRI-O | |
Boxes | Type 2 | rktlet | |
Red Hat Enterprise Virtualization (RHEV) | Type 1 | Containerd | |
XCP-ng | Type 1 | LXC | |
VMware vSpher / ESXi | Type 1 | ||
Xen / Citrix XenServer | Type 1 |
Type-1: A bare-metal hypervisor (Type 1) is a layer of software we install directly on top of a physical server and its underlying hardware. The physical machine the hypervisor is running on serves virtualization purposes only.
Type-2: This type of hypervisor runs inside of an operating system of a physical host machine. This is why we call type 2 hypervisors – hosted hypervisors.
Key Terms:
- azure ,
- containers ,
- Kubernetes ,
- Open Source Software ,
- open-source virtualization platform ,
- Virtual machines