Skip to content

Supporting Components

In addition to its core components, Docker Engine relies on several supporting components to manage containers, build images efficiently, and extend functionality.

Containerd

containerd is a high-level container runtime that manages the container lifecycle, which includes creating, starting, stopping and deleting containers.

By default, containerd uses runc as its low-level container runtime. However, it supports other runtimes that implement the containerd shim API. These runtimes include their own containerd shim and can be used without modifying Docker's configuration.

Containerd Shim

The containerd shim is a lightweight process that allows containers to continue running independently, even if the main containerd daemon shuts down or restarts. It acts as a bridge between containerd and runc, keeping container processes isolated from the containerd daemon.

It enables the use of alternative runtimes without modifying the Docker Daemon configuration.

Each running container has its own instance of containerd-shim, ensuring isolation and resilience.

Runc

runc is a lightweight command-line tool used by containerd to create and run containers according to the Open Container Initiative (OCI) runtime specification. It provides the low-level functionalities required to start and manage containers.

BuildKit

BuildKit is an advanced image-building toolkit that improves performance, caching, and security. It is used by Docker to build images more efficiently and supports parallelized build steps.

By default, Docker uses the legacy builder (or classic builder) for building images. To enable BuildKit, set:

sh
export DOCKER_BUILDKIT=1

For persistent configuration, add this setting to /etc/docker/daemon.json:

json
{
  "features": {
    "buildkit": true
  }
}

Plugins

Docker supports plugins to extend its capabilities in areas such as:

  • Networking (e.g., CNI plugins)
  • Storage (e.g., volume drivers)
  • Logging (e.g., logging drivers)

Plugins allows users to integrate Docker with third-party tools and services. For more details, refer to the Docker Plugins Documentation.