✦ For everyone, free.

Practical knowledge for real and everyday life

Home

2.1.1.2 Daemon Image Control

A focused guide to Daemon Image Control, connecting core concepts with practical Docker and container operations.

Daemon image control is the daemon's responsibility for managing every aspect of an image's lifecycle: building images from a Dockerfile, pulling them from registries, storing them locally as layered filesystems, tagging them, and removing them when no longer needed.

Building Images

When docker build is invoked, the client sends the build context (the Dockerfile and any files it references) to the daemon, which executes each instruction in sequence, producing a new filesystem layer per instruction and assembling the final image.

docker build -t myapp:1.0 .

The daemon performs every step of this process — the client's role is limited to sending the build context and reporting the daemon's progress back to the user.

Pulling and Pushing Images

The daemon manages all communication with registries: retrieving image layers that are not already cached locally, and uploading layers when an image is pushed.

docker pull postgres:16
docker push registry.example.com/myapp:1.0

The daemon determines which layers already exist locally or remotely and transfers only what is missing, rather than always transferring an image in full.

Local Image Storage

The daemon maintains local storage for every image layer it has built or pulled, deduplicating shared layers between images so that, for example, two images based on the same parent image do not each store a separate copy of that shared base.

docker images
docker system df

The second command reports how much disk space is consumed by images, containers, and other Docker-managed data on the host.

Tagging and Removing Images

The daemon tracks tags as pointers to specific image versions, and removes image data only when no container or tag still references it.

docker tag myapp:1.0 myapp:latest
docker rmi myapp:1.0
Why Centralized Image Control Matters

Because the daemon alone manages image state, every client — whether the CLI, an API call, or a tool integrating with Docker — sees a consistent view of what images exist and what they contain, without needing its own separate bookkeeping.