History of containers … and Docker

First experimentations

  • IBM VM/370 (1972)

  • Linux VServers (2001)

  • Solaris Containers (2004)

  • FreeBSD jails (1999)

Containers have been around for a very long time indeed.

Containers = cheaper than VMs

  • Users: hosting providers.

  • Highly specialized audience with strong ops culture.

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.

First users of Docker

  • PAAS builders (Flynn, Dokku, Tsuru, Deis…)

  • PAAS users (those big enough to justify building their own)

  • CI platforms

  • 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

  • Kitematic

  • Docker Cloud (formerly “Tutum”)

  • Docker Datacenter

  • etc.

Docker Inc. launches commercial offers.