Container Based Virtualization is as an advanced implementation of the standard chroot mechanism where we get more advantages in addition to isolation mechanisms. Those who are the regular readers of this website, obviously has noticed articles on Docker. We want to make this Docker part clear to the readers. Also, possibly you have read about VirtFS or Jailed Shell. This Jail (which we discouraged to use as terminology in post colonial era) is the same side of one coin. The article is important in the understanding of what is Container Based Virtualization, but more helpful will be to start reading the old article on Types of Virtualization. You’ll find the terminology – Operating system level virtualization. Example of Operating system level virtualization obviously includes Container Based Virtualization.
Basics of Container Based Virtualization
Possibly you have read about Virtual Machine (VM), Kernel Based Virtual Machine (KVM) and PVHVM Virtualization Mode. So, Container Based Virtualization IS a kind of operating system level virtualization where the kernel of an operating system allows multiple isolated user space. Such instances may look and feel like a real server from the point of view of its owners and users but has ways to identify – Blue Pill-Red Pill Tests.
This technology is as an advanced implementation of the standard chroot mechanism in addition to the isolation mechanisms, the Linux kernel often provides management features to limit the impact of one container’s activities on the other container.
Where Container Based Virtualization Differs From Traditional OpenVZ?
It is quite normal to get confused with the terminologies specially after reading the published articles in some of the news websites – you’ll not get confused if you read from Red Hat or Rackspace’s Official blogs – they are written by really existing human beings. These websites have are Ghost Writers, Fake Profiles. Their articles are tailored to search and advertisement need. For example, they just need to write something about Docker, they’ll use the high yielding terminologies.
Docker is more like a mini-container because it is mostly designed to run a single process within the desired runtime environment. If a person need more than one process then a separate Docker container for each process can be run and then can be connected together by private network connections. Whereas OpenVZ will offer a full fledged container inside of which one can run a fairly complete Linux distribution which includes all of the processes and services one will ever need. OpenVZ is highly isolated with considerable resource management.
While Docker has features like image layering and git-like application deployment with a flowchart for of containers – one can compare with PaaS cloud services for the developers. OpenVZ or KVM are not out of the game. As it is science, we can obviously make a table of differences with operating system virtualization and hypervisor-based virtualization. First one is Container based Virtualization and Second one is Virtual machine. You can not basically list OpenVZ, LXC, Parallels Virtuozzo and Docker in the same list. Docker, essentially uses LXC. Docker runs on the top of libvirt, LXC and systemd-nspawn. OpenVZ is a container-based virtualization for Linux, Docker is kind of “micro system”. Docker is not a Linux Container technology (like LXC). Docker basically has a missing terminology to name it yet – Docker is also not a Configuration Manager replacement unlike Chef, Puppet etc. Yes, Container Based Virtualization is Operating system level virtualization. It is quite normal to get confused