Search⌘ K

The Deep Dive

Explore the core architecture of the Docker Engine, focusing on its modular components and how it evolved from a monolithic daemon to specialized tools. Learn about the replacement of LXC with libcontainer and the roles of containerd and runc in modern container management.

When Docker was first released, the Docker Engine had two major components:

  • The Docker daemon (sometimes referred to as just “the daemon”)
  • LXC

The daemon was a monolithic binary containing all the code for the API, image builders, container execution, volumes, networking, and more.

LXC did the hard work of interfacing with the Linux kernel and constructing the required namespaces and cgroups to build and start containers.

Replacing

...