Docker recently turned 6 years old. That makes this a fitting time to step back and think about how the conversation surrounding Docker has evolved over those years.
My goal in this article is not to focus on how Docker-related technology itself has changed. Instead, let’s explore how the interests of the communities surrounding Docker have evolved, and how priorities have shifted, since Docker was first released as an open source platform.
Docker’s Early Days: 2013-2015
Back when Docker first appeared and for the first couple of years after, most conversations about Docker centered around simply explaining what Docker actually is, how containers are different from virtual machines and whether it made sense to start experimenting with them.
I think it’s fair to say that most people at the time had no experience with containers, even though other container frameworks existed before Docker appeared. And although today most IT professionals understand the distinction between containers and virtual machines, back then, the idea of being able to virtualize an application without emulating hardware was a new concept to most people.
It was also unclear to some why you would want to do that in the first place: If containers don’t completely abstract an application away from the host system, or let you run a Windows app on Linux (or vice versa), then what’s the point?
Today, most folks are no longer asking those questions. They understand the value of having a solution that can host applications inside portable, isolated environments while still giving the application bare-metal access when desired.
2015-2016: Getting Docker into Production
By 2015 or so (maybe a bit earlier), Docker had gained enough of a following that organizations were no longer just experimenting with containers, but were starting to put them into production.
That spawned a burgeoning ecosystem of open source and commercial tools designed to make it easier to run Docker at scale. Docker Hub debuted in mid-2014, but it wasn’t until the following year that orchestrators such as Docker Swarm and Kubernetes came out in production-ready form, making it easier to manage containers at scale. Commercial container security solutions including Twistlock and AquaSec also debuted in 2015.
This didn’t mean everyone was deploying them into production environments by circa 2016. Many organizations were still experimenting with Docker, or had not yet looked into it at all. But by this time, early adopters had the basic toolset they needed to be able to run containers at scale for production purposes.
2017-2018: Battle for the Container Ecosystem
As more and more tools entered the container ecosystem, competition heated up between different factions and communities. At a high level, this competition pitted Docker and its close partners (including Microsoft, which collaborated with Docker to bring containers to Windows) against an alliance of companies and open source projects (including Google and Red Hat) that hoped to build an ecosystem which was not centered exclusively on tools produced by Docker itself.
By most measures, the latter faction succeeded. Today, organizations can choose from a long list of container runtimes instead of having to rely on Docker’s alone. Many also now prefer Kubernetes, the orchestrator developed through an open source project that Docker does not control, to Docker’s home-grown alternative, Swarm. There are also plenty of alternatives to Docker Hub and Docker’s security tools.
Today, in fact, it’s quite simple to run a container stack that doesn’t depend on Docker technology at all.
2019 and Beyond: Containers Become Mundane
To be sure, the container ecosystem remains diverse. New tools are still being released, and there are more ways than ever to deploy container stacks.
All in all, however, I think we’re now living in a time when containers have started to become boring. Docker and Kubernetes have become commodity tools. Deploying applications inside containers is no longer avant garde; it’s what people everywhere are doing.
This isn’t to say the container conversation is over. I suspect there will still be a lot of activity and debate surrounding areas such as container security and monitoring, as well as how to achieve “containers 2.0” with the help (perhaps) of technologies such as unikernels.
But, in my opinion, the heady times of Docker’s early years are past.