History of containers ... and Docker
- First experimentations
- The VPS age (until 2007-2008)
- Containers = cheaper than VMs
- The PAAS period (2008-2013)
- Containers = easier than VMs
- First public release of Docker
- Docker early days (2013-2014)
- First users of Docker
- Positive feedback loop
- Maturity (2015-2016)
- Docker becomes an industry standard
- Docker becomes a platform
Containers have been around for a very long time indeed.
(See this excellent blog post by Serge Hallyn for more historic details.)
The VPS age (until 2007-2008)
Containers = cheaper than VMs
Users: hosting providers.
Highly specialized audience with strong ops culture.
The PAAS period (2008-2013)
Containers = easier than VMs
I can't speak for Heroku, but containers were (one of) dotCloud's secret weapon
dotCloud was operating a PaaS, using a custom container engine.
This engine was based on OpenVZ (and later, LXC) and AUFS.
It started (circa 2008) as a single Python script.
By 2012, the engine had multiple (~10) Python components.
(and ~100 other micro-services!)
End of 2012, dotCloud refactors this container engine.
The codename for this project is "Docker."
First public release of Docker
March 2013, PyCon, Santa Clara:
"Docker" is shown to a public audience for the first time.
It is released with an open source license.
Very positive reactions and feedback!
The dotCloud team progressively shifts to Docker development.
The same year, dotCloud changes name to Docker.
In 2014, the PaaS activity is sold.
Docker early days (2013-2014)
First users of Docker
PAAS builders (Flynn, Dokku, Tsuru, Deis...)
PAAS users (those big enough to justify building their own)
developers, developers, developers, developers
Positive feedback loop
In 2013, the technology under containers (cgroups, namespaces, copy-on-write storage...) had many blind spots.
The growing popularity of Docker and containers exposed many bugs.
As a result, those bugs were fixed, resulting in better stability for containers.
Any decent hosting/cloud provider can run containers today.
Containers become a great tool to deploy/move workloads to/from on-prem/cloud.
Docker becomes an industry standard
Docker reaches the symbolic 1.0 milestone.
Existing systems like Mesos and Cloud Foundry add Docker support.
Standardization around the OCI (Open Containers Initiative).
Other container engines are developed.
Creation of the CNCF (Cloud Native Computing Foundation).
Docker becomes a platform
The initial container engine is now known as "Docker Engine."
Other tools are added:
- Docker Compose (formerly "Fig")
- Docker Machine
- Docker Swarm
- Docker Cloud (formerly "Tutum")
- Docker Datacenter
Docker Inc. launches commercial offers.