Adopt Runtime / Container Runtime

Technology Guide

Docker

License: Apache-2.0

Docker Logo

Field Guide

Complete Guide

Docker is the tool that made Linux containers usable. The original 2013 release wrapped cgroups, namespaces, and aufs behind a friendly CLI, a layered image format, and a public registry (Docker Hub), and more or less defined how a generation of engineers thinks about packaging and shipping software. The Dockerfile format and the image spec it introduced are now OCI standards used by every container tool in the ecosystem.

Today, “Docker” refers to several related things. Docker Engine (dockerd) is the daemon that builds images and runs containers; since 2017 it has used containerd internally to run containers and BuildKit to build them. Docker Desktop is the commercial product for macOS and Windows that runs a Linux VM with the engine inside it, plus Kubernetes, volume mounts, and a GUI. Docker Hub is the registry. Docker Compose is the multi-container orchestration tool. docker buildx is the modern BuildKit-based build frontend, with multi-arch and remote builders.

With Kubernetes dropping the dockershim in 1.24, Docker is no longer the runtime on most production Kubernetes nodes — containerd and CRI-O have taken that role. But Docker remains dominant for local development, CI image builds, and single-host deployments, and the Dockerfile is still the default way most teams describe how to build an image. Alternatives for the daemon (Podman, nerdctl), builder (BuildKit directly, Buildah, ko), and desktop UX (Rancher Desktop, Podman Desktop, OrbStack, Colima) all exist and are worth considering depending on your needs.