Skip to content

Docker architecture

Docker architecture is a client-server model that facilitates the building, shipping, and running of applications inside containers^[600-developer-docker-docker.md].

Core Components

The architecture is composed of three main elements:

  • Docker Client: The interface (often a command-line terminal) where users issue commands^[600-developer-docker-docker.md].
  • Docker Daemon: The background process running on the host (Docker Host) that listens for API requests and manages Docker objects like images and containers^[600-developer-docker-docker.md].
  • Docker Registry: A storage and distribution system for named Docker images (e.g., Docker Hub)^[600-developer-docker-docker.md].

Interaction Flow

When a user executes a command from the client (such as docker run), the client sends the request to the Docker daemon^[600-developer-docker-docker.md]. The daemon then retrieves the necessary layers from the registry to construct the image, instantiates a container from that image, and streams the output back to the client^[600-developer-docker-docker.md].

Basic Building Blocks

The architecture relies on three fundamental components:

  • Image: A read-only template or blueprint used to create containers^[600-developer-docker-docker.md].
  • Container: A runnable instance of an image^[600-developer-docker-docker.md].
  • Repository: A collection of related images (usually different versions) tagged specifically^[600-developer-docker-docker.md].

Sources

^[600-developer-docker-docker.md]