The Doppler Quarterly Winter 2016 | Page 42

Mythbusting Docker Dan Griffith Six busted myths that prove the containerized future is closer than you think. This year Docker containers have managed to claim the mantle of “most-hyped technology.” However, this hype has not led to the IT community’s universal acceptance of Docker containers as the Next Big Thing; far from it. In defiance of the classic Gartner hype cycle sequence, the container discus- sion has seemingly jumped straight from the technol- ogy trigger to the trough of disillusionment, alto- gether bypassing inflated expectations. It seems that each day brings a new critical appraisal of containers in general, and Docker in particular. These critiques often focus on the supposedly stark contrast between Docker container technology’s potential and its immaturity and unreadiness for actual production use. Experience in the engineering trenches with Docker has given me quite a different perspective on the cur- rent and future state of containers. I readily concede that Docker containers are a relatively untested tech- nology, and that major functional gaps in networking, storage, and security must be bridged in order for containers to become a mainline infrastructure com- ponent. However, I will argue that mainstream accep- tance and widespread use of containers are closer than most people think, and that containers are already well on their way to becoming ubiquitous. This discussion highlights and “busts” commonly believed myths about Docker and containerization. 40 | THE DOPPLER | WINTER 2016 Myth 1: Docker Containers Are Best Understood as Small VMs Like many IT professionals with extensive virtualiza- tion experience, the concept of Docker containers as virtual machine “mini-me’s” was a logical first frame of reference. The equivalence of containers and vir- tual machines is a simple, elegant, easily understood, and absolutely wrong construct. In fact, Docker architects make sure to debunk this idea during bootstrap training sessions, stating baldly that con- tainers are not virtual machines, and should not be treated like them. Docker containers do serve the same purpose as vms, presenting a subset of resources like compute, storage, libraries, and net- working to an application process. However, there are key differences, especially in one area. A virtual machine uses a full operating system run- ning on an abstracted hardware-as-software layer, provisioned for the application process in toto. In contrast, a container only provisions the specific operating system resources necessary to run its spe- cific application process. Installing an application in a vm first requires building and configuring a full instance of a specific OS version on the virtual hard- ware supplied by a specific hypervisor version. Provi- sioning a “containerized” application basically requires a Docker engine running on a common ker- nel, a Docker image (instruction set), and access to required libraries (which can be built on demand).