Why Is Docker So Popular? Explaining the Rise of Containers and Docker
By now, you've almost certainly heard of Docker containers. You know Docker is massively popular. But do you know why? Here's a look at the factors driving tremendous interest in Docker today.
Before delving into a discussion of the factors behind Docker's popularity, it's worth noting that Docker is not the only container platform out there. Nor was it the first to come along.
Other frameworks, like OpenVZ and LXC, were available starting in the mid-2000s. Other container-like technologies, such as FreeBSD jails, go back even further. Docker was released only in 2013, making it a very young technology compared to most of today's mainstream enterprise technologies.
Curiously, however, it was Docker, not a more mature container platform, that has risen to massive prominence over the past few years. That's an outcome worth pondering — for the purposes both of understanding what makes containers in general so popular, as well as why Docker in particular has succeeded so spectacularly, whereas alternative container frameworks have seen little adoption.
Explaining Docker's Popularity
So, let's consider those two factors.
First, here's why containers in general have proven so appealing to companies large and small over the past several years:
- They start and stop much faster than virtual machines.
- They are more portable because container host environments are very consistent, no matter which type of operating system is hosting them.
- Containerized applications are easy to scale because containers can be added or subtracted quickly from an environment.
- Containers make it easy to break complex monolithic applications into smaller, modular microservices.
Then there's the question of why Docker specifically has become so popular. That's a harder question to answer, but I think the following factors are at play:
- Docker was open source from the start. This helped Docker to appeal in the technology market, which by 2013 was beginning to see open source as the default mode of software production. (Had Docker emerged just five years earlier, when commercial interest in open source was less intense, I don't think being open source would have helped Docker as much.)
- Docker appeared at the right time. By 2013, virtual machines were finally becoming a dated technology. Organizations were looking for a leaner, meaner way of deploying applications, and Docker happened to fit the bill. When OpenVZ and LXC appeared in the mid-2000s, traditional virtualization had not yet run its course, so those container frameworks were less appealing.
- Docker coincided with the DevOps revolution. DevOps, which became popular in the early 2010s, emphasizes agility, flexibility and scalability in software delivery. Docker containers happen to provide an excellent building block for creating software delivery pipelines and deploying applications according to DevOps prescripts.
The Linux Comparison
In many respects, Docker's rather unpredictable success mirrors that of the Linux kernel in the 1990s.
As I've noted previously, Linux entered the world as an obscure software project run by a Finnish student who had no funding or advanced equipment. Linux ended up becoming tremendously successfully, whereas more prominent, better-funded, professionally managed kernel projects like those of GNU and BSD saw limited adoption.
The differences between Docker and alternatives like LXC were perhaps not as pronounced as those between Linux and GNU Hurd. Still, there are parallels between the rise of Linux and Docker over a relatively short period of time from obscure projects to ones of huge commercial importance.
I think timing explains why Docker containers became so popular. Docker containers solve the software delivery and deployment problems that many organizations have sought to address over the past five years. While earlier container frameworks offered similar solutions, interest in them was limited because the problems they solved were not as pressing at the time of their debut.
In general, I think timing had less to do with Linux's success than it did with Docker's. Linux succeeded largely because the other kernel projects (especially GNU's) were in disarray, and because Linux adopted an innovative, decentralized development strategy early on. But timing certainly at least helped Linux to succeeded, as it did Docker.