The Difference: Docker vs. Virtualization

Technical Basics

Docker is an open source container technology that became immensely popular in 2014. Docker itself is written in Google’s programming language Go and supported on all major Linux distributions (RedHat, CentOS, Oracle Linux, Ubuntu etc.). The technical underpinnings are not completely new, Docker leverages Linux kernel features for containers such as cgroups and namespaces. So even though Docker itself is relatively new, the underlying container technology is an established technology. Docker containers run on top of an operating system.

It is reported that Google starts 2 000 000 000 every week for search, mail, etc.

Virtualization versus Container

It’s important to distinguish Linux containers and Docker from traditional and more common type 1 or type 2 hypervisors. Type 1 hypervisors provide server virtualization with different operating systems on bare metal hardware, whereas Type 2 hypervisors often provide desktop virtualization based on an existing operating system as shown below.

Screen Shot 2015-09-21 at 10.44.55

 

In contrast to popular virtualization technologies, Docker containers run the host’s Linux kernel. Docker is about isolation, not about virtualization. The required time to startup a container is only in the range of milliseconds. Still containers have their own incremental files system, where layers are reused across containers. In addition, every container has its own network stack, therefore its own IP-address, and its own process space.