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].
Related Concepts¶
- Docker Compose
- [[Virtualization]]
Sources¶
^[600-developer-docker-docker.md]