Docker

Docker is a platform for building, shipping, and running applications inside containers. It was first shown publicly by Solomon Hykes in a five-minute lightning talk, “The future of Linux Containers,” at PyCon US on March 20, 2013. The technology had grown out of the internal container tooling used at his company dotCloud.

Docker’s central idea is to package an application together with everything it needs to run, such as its code, runtime, libraries, and configuration, into a single self-contained image. That image can then be run as a container on any machine with Docker installed, behaving the same way in development, testing, and production. Docker’s own documentation describes the platform as a way to separate applications from infrastructure so software can be delivered quickly.

Rather than inventing the underlying isolation, Docker built on features already in the Linux kernel and wrapped them in a simple command-line tool and image format. This made containers approachable for ordinary developers, not just specialists, which is what drove its rapid adoption.

Docker popularized a shared vocabulary of images, containers, and registries that the wider industry adopted. Its image format and runtime became the basis for later standards and for orchestration systems such as Kubernetes that schedule and manage containers at scale.