Translate

Image of RHCE Red Hat Certified Engineer Linux Study Guide (Exam RH302) (Certification Press)
Image of XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer)
Image of Modern Operating Systems (3rd Edition)
Image of Operating System Concepts

My thoughts on Docker, i.e. Linux Containers

Docker is an open-source project, started by Solomon Hykes of dotCloud, that automates the packaging of an application and its dependencies, and the deployment of such applications inside software containers on a Linux kernel. Currently the technology is being strongly pushed by the Linux community and especially by Red Hat.

Unlike hypervisor-based virtual machines, a Docker container does not include the kernel or all the operating system libraries, shells and utilities. Instead, it relies on functionality in the Linux kernel (cgroups, LXC, etc.) to provide resource and namespace isolation.

In many ways this is similar to the older Oracle Solaris Containers and Zones which first appeared in Solaris 10 and BSD Jails. They are both quasi-virtualization technologies using features of their respective kernel. Unlike hypervisor-based virtualization, they do not add an additional software layer. With both technologies, there is only one kernel that is shared by many zones (Solaris) or containers (Linux). The difference between the technologies is mostly at the implementation level with LXC/cgroups being the more lightweight technology.

Note that LXC and cgroups are not new Linux technologies. What is new and provided by Docker, is the ability to easily package Linux applications so that they run within a container.

Note also that unlike full virtualization solutions such as VMware, Docker does not support non-Linux operating systems. However, for what it is worth, you are able to run different Linux distributions that use the same kernel.

Frankly I can see few real world use cases for this technology, interesting though it may be, because the Linux kernel changes too frequently in many distributions. Perhaps, Red Hat can make a case for RHEL because the kernel remains stable for the lifecycle of a release. Docker documents some use cases here but I do not find these use cases to be compelling. I see not reason why I would ever use Linux containers in my development environment.

My prediction – Linux containers will continue to be a niche technology mostly used by Google, Facebook, Amazon and the likes.

Comments are closed.