The Deep Dive

A deep dive into the Docker engine.

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

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

The Docker daemon was a monolithic binary. It contained all of the code for the Docker client, the Docker API, the container runtime, image builds, and much more.

LXC provided the daemon with access to the fundamental building blocks of containers that existed in the Linux kernel. Things like namespaces and control groups (cgroups).

The figure below shows how the daemon, LXC, and the OS interacted in older versions of Docker.

Get hands-on with 1200+ tech skills courses.