(Update) We’ve released new training material on Docker, including the Cloud Academy’s Docker in Depth Learning Path. This learning path is designed to teach you all about Docker starting from the individual container and progressing to the continuous deployment of an application in AWS. The Learning Path comprises of video Courses, Hands-on Labs, and Quizzes to test your skills. Visit the Cloud Academy’s Training Library for all our latest content on Docker.
If you are a system administrator or an IT operations professional dealing with virtual machines and cloud deployments, you would have definitely heard of Docker. In the recent past, Docker has generated a lot of interest in the industry. Some articles and commentary have even positioned Docker as the hypervisor killer, which could be a potential threat to VMware, Citrix, and Microsoft. While it has a long way to go before replacing the hypervisor, Docker does solve some real-world problems that developers and operations professional often deal with.
Docker is a management and deployment tool for Linux containers. Container virtualization takes advantage of certain Linux features like chroot, namespaces and layered file system.
VMs typically emulate x86 system. They share the hardware of the host machine. Each VM is independent of the other. In Docker, each unit of execution is called a container. They share the kernel of the host OS that runs on Linux.
The role of a hypervisor is to emulate underlying hardware resources to a set of virtual machines running on the host. Hypervisor exposes CPU, RAM, network and disk resources to the VMs. Each VM lives in an illusion that it has dedicated access to the hardware. This brings a level of isolation among the running VMs. If hypervisor provides machine-level virtualization, container technology provides OS-level virtualization. If VMs share the same hardware of the host, the containers share the underlying kernel of the host. Like hypervisor, Docker provides basic management of containers.
The workflow and the life cycle of managing the logical units of execution are the same between virtualization and Docker.
Below is a quick comparison of virtualization with Docker.