The Docker ecosystem has evolved significantly since 2013, marked by new technologies like Kubernetes, competition from the likes of Red Hat and AWS and Docker's embrace of open standards.
Docker containers turned four years old this month. If you were paying attention to Docker in its early days, you know that the Docker ecosystem today looks nothing like it did then. Here's how the Docker world has evolved since Docker's launch in 2013.
Docker's debuted generated a splash among developers -- you can hear them oohing and aahing in this demonstration of Docker at the PyCon event in 2013 -- but its commercial importance at the time of Docker's launch was unclear. Back then, Docker was just an implementation of LXC, a Linux containerization technology that had already been around for years. LXC was an interesting platform, but few people in 2013 thought of it as the building block for deployment infrastructure that could replace virtual machines.
As a result, when Docker was launched as an open source project, there was not much of a Docker ecosystem at all. In fact, Docker the company did not yet even exist; the Docker platform in 2013 was still developed by a now-defunct company called dotCloud. DotCloud later changed its name to Docker, and Docker in turn sold dotCloud to a company called cloudControl in 2014. (Yes, this is all very confusing.)
2014: The Docker Ecosystem Grows
By 2014, with dotCloud having transformed into Docker and Docker's commercial importance grown clearer, bigger-name companies started showing interest in Docker containers. Red Hat started building a platform for hosting Docker containers. Microsoft announced that it would work to make Docker compatible with Windows. Orchestrators like Kubernetes emerged, making it feasible to manage clusters of Docker containers at scale.
Docker's switch in 2014 from LXC to libcontainer, an original container runtime, also helped to make Docker more distinct.
Tension within the Docker Ecosystem
As the Docker ecosystem expanded, so did competition between different vendors.
For a while, the Docker ecosystem was essentially divided into two camps. One centered around Docker, Inc., which adopted a mostly go-it-alone policy and sought to build its own stack of software for running and managing Docker containers. This strategy reached its full incarnation last summer, when Docker announced that it would bake the Swarm orchestrator into the core Docker platform. That reduced the opportunity for third-party vendors to contribute to a Docker software stack.
On the other side of the divide were companies like Red Hat, which favored the Kubernetes orchestrator, and Amazon, which wanted people to run containers in the AWS cloud using an AWS-specific implementation of Docker.
Tension between Docker and other vendors in the ecosystem grew great enough that there was talk of forking Docker last August. The fork never happened, but Red Hat did launch OCID, an alternative to Docker's container runtime interface, runC. In some ways, OCID looks like a fork of some parts of Docker.
Over the last few months, tension has calmed. While companies like Red Hat and Amazon clearly remain in competition with Docker, concerns that Docker, Inc. would ignore the rest of the ecosystem and make its container technology incompatible with that of other vendors have been allayed.
Docker has demonstrated an unequivocal commitment to the open source community and open standards. Most recently, the company donated some of its core code, containerd, to the Cloud Native Computing Foundation. This helps to ensure that third-party vendors will always be able to make their products compatible with the container framework around which Docker is built.
It has also helped that Docker's integrated software stack is now just one of many such options for deploying containers in production. Lots of vendors are now offering turn-key platforms for deploying and managing containers based on Docker, from Red Hat OpenShift to Rancher to, again, the AWS cloud. And, because the runtime, orchestration layer, registries and so on required to deploy a holistic container stack are all open, you can build an environment from scratch using whichever components you want.
This means that Docker users have lots of choice when it comes to exactly how they will implement their Docker environment.
All in all, the Docker ecosystem today is in a healthy state of equilibrium. That's a big change from its state just a year ago, when competition abounded -- and an even bigger change from the time of Docker's launch in 2013, when it was not clear whether a Docker ecosystem would ever develop.