To understand what makes containers different from virtual machines—and what the future of Docker the company will be—it’s worth comparing the rise of Docker Inc. to the rise of VMware.
To be clear, this is not a post about the technical differences between containers and virtual machines. That has been done. Nor is it about the total cost of ownership of containers as compared to virtual machines, another topic we covered recently.
Instead, I’d like to think about how the evolution of Docker the company over the past several years—the time during which containers became popular as a production-ready infrastructure solution—compares to the evolution of VMware in the late 1990s and early 2000s—the time in which virtual machines entered into widespread use.
VMware and Docker Inc.: The Similarities
VMware and Docker Inc. are similar in that both companies dominated their respective markets in their early days. Strong competitors to VMware did not start to emerge until the later 2000s, when companies including Microsoft began offering competing virtualization products and open-source alternatives like KVM appeared.
When Docker containers became publicly available in March 2013, Docker (well, the company known as dotCloud, actually; Docker Inc. did not appear until later) was the only company in the space. It had no competitors at all.
What Makes Docker Different
But that choice position did not last long. Within just a few years, lots of competition for Docker Inc. has emerged.
Kubernetes, which became the foundation for software stacks that compete with Docker’s, emerged in 2014. Cloud-based container services, such as AWS ECS, began to appear around the same time. Today, if you want to deploy a Docker environment, you have numerous options, from Rancher to Red Hat OpenShift to ECS to SUSE MicroOS, to name just some of the commercial offerings, as well as Docker’s own commercial platform, Docker Enterprise Edition.
So, whereas VMware dominated the virtual machine market for almost a decade before serious commercial competition emerged, Docker Inc. had barely gotten its own product to market before alternative container platforms started to appear.
Why the difference? Part of the reason—and this is pretty obvious, I think—is that Docker containers were an open-source technology from their earliest days. That made it easy for anyone outside of Docker Inc. to take the Docker code and use it to create products of their own. In contrast, VMware’s business was built around proprietary code.
But that’s only part of the lesson. The other big difference is that Docker Inc. at first only built a framework for running containers. It lacked the orchestration tools you need if you want to use containers effectively in production.
Docker did not start developing Swarm until early 2015. Swarm 1.0 was not released until the following autumn. Kubernetes was already pretty popular by then. By the time Docker decided to make Swarm a default part of the Docker platform in summer 2016, Docker Inc. already had lots of competitors with serious products of their own, most of which were built using Kubernetes.
In contrast, VMware had offered a holistic solution for running and managing virtual machines from its earliest days. There was no obvious opportunity for competitors to build competing platforms that simplified the management of a VMware environment. To compete with VMware, you had to build an entirely separate virtual machine hypervisor, plus a management layer on top of that. It took Microsoft and the KVM folks a long time to do that.
The message here is that, while Docker’s core container technology was certainly cool from the beginning, Docker Inc. might have retained a more dominant position in the market if it had taken steps earlier in its history to implement orchestration tools as well as containers themselves. The market wanted management solutions as much as it wanted containers.
Docker Inc. didn’t provide orchestration until competitors already had orchestrators of their own. That’s why Docker Inc., while successful, will never be the kingpin in the container market that VMware became for the virtual machine market.