“What virtual machines did was consolidate the CPU power. Docker takes it an extra step because it consolidates the memory, and that is more expensive.”
Consolidating all the containers into a smaller memory footprint saves money because it uses less RAM to run an equivalent amount of work. “Typically, you’re running inside a VM, but instead of 10 VMs, now you’ve got one,” said Cockroft. “Or on Amazon Web Services, you can have 8x large instead of 10x large. So you have the same memory footprint, but now you’re running eight containers. That could be a 50% to 70% cost savings.”
Docker: What, who and why
In addition to its low memory overhead, Docker wins points for isolation, fast boots and shutdowns, and cloud deployment elegance. Written in Google’s highly portable Go programming language, the Docker engine comprises a daemon/server that manages the containers, with a client to control the daemon. Containers, according to Docker’s Web-based command-line tutorial, are a “process in a box. The box contains everything the process might need, so it has the file system, system libraries, shell and such, but by default none of these are running. You ‘start’ a container by running a process in it.”
Docker has revitalized DevOps in three ways:
- By adding image-management and deployment services to longstanding, difficult-to-use Linux container technology
- By launching a vital developer community around the open-source Docker engine
- By assembling an ecosystem of complimentary technologies that make deploying microservices and monolithic apps alike a push-button affair.
“The Docker Hub has 100,000+ Dockerized services in the hub that I as a developer can pull from,” said Docker’s Messina. “If I have an app that has a Linux distribution, a language stack, a database like MongoDB and a Web server like nginx, I can orchestrate these services from my desktop.”
While much of the DevOps tooling (such as Puppet or Ansible) has focused on the Ops end of the pipeline, Docker owes much of its popularity to a massive developer following. “The driving force for Docker are Dev teams, but Ops is also a critical stakeholder,” said Messina. “In the majority of organizations, development has led the process of containerization. But in others, like Yelp or Groupon, Ops set up a framework around Docker, then began marketing the productivity improvement to development.”
(Related: Docker containers a topic at AnsibleFest)
Not surprisingly, Docker’s rapid rise has sparked some controversy. While software companies like Microsoft, Amazon, ActiveState, JFrog, ClusterHQ and more jockey to ride the containerization wave, criticisms have been lobbed. One is that the tool is too simplistic for enterprise use. That’s the argument made in a December 2014 manifesto by CoreOS, which launched a competitor, Rocket, as a container runtime “designed for composability, security and speed.”
According to Alex Polvi, CEO of CoreOS, the Docker repository’s original manifesto described a simple container standard. “Unfortunately, a simple reusable component is not how things are playing out,” he said.