Docker containers have become a massively popular technology. But Docker is by no means the only or the oldest container platform. That begs the questions: Why Docker? What made Docker stand out from the competition?
Although few people were paying attention to container technologies before Docker came along in 2013, those technologies existed. The LXC containerization framework—on which Docker was originally based—has been around since 2008.
Other forms of containerization or container-like technology, such as OpenVZ, FreeBSD Jails and plain old Unix chroot, predate Docker by decades in some cases.
So, why did Docker become so popular in a relatively short period of time, whereas alternative frameworks for building containers are not mainstream even today?
Here are some possible explanations, along with an evaluation of their merits:
- Docker had a better business model. You could argue this. Docker has been more commercially successful than anything based on LXC or OpenVZ. But this is still kind of a weak argument. Docker Inc. spends much more money than it makes. It’s not clear why any other container platform couldn’t have been commercialized in the same way as Docker has been, given the right amount of VC funding.
- Docker has better technology. Docker’s technology stack today is more mature than LXC and others. But back in 2013, when people suddenly started paying lots of attention to Docker, the Docker platform was still very immature. Orchestrators did not yet exist. Neither did container registries. I don’t think Docker’s success can be explained by its technology, at least not historically.
- Docker built a stronger ecosystem. The organizations behind technologies such as LXC and OpenVZ never built strong ecosystems. Docker did better in that respect. Still, even Docker’s ecosystem is not especially strong. Docker has powerful competitors, and few big-name partners. It tried building its own technology stack, then it more recently adopted a more open stance. The ecosystem may have helped Docker, but I don’t think it has been the primary factor in Docker’s success.
- Docker arrived at the right time. To me, this argument is the best for explaining Docker’s success. Docker debuted in 2013, a time when traditional virtualization was becoming stale, DevOps was growing in popularity and people were looking for a newer, better technology for building infrastructure. Had Docker emerged five years earlier, people would probably have paid less attention, because their virtual machines were still cutting it for them at the time.
This is my take. But I think the question of why Docker has been so successful and become so popular remains ripe for debate. There’s no single, concrete answer—and it’s an answer that is still emerging as Docker continues to mature.