CertGrid CertGrid

Docker

Images, layers, registries and Compose.

46 published guides

46-guide Docker learning path · 46 published · about 621 min of reading · 9 learning tracks · reviewed 22 August 2026

Getting Started4 guides

Install the engine and understand what Docker actually is.

  1. Installation 15 min

    Docker Engine Installation on Ubuntu 26.04

    Install from the official apt repo, watch a real multi-layer pull, and drop the sudo prefix.

    apt-get install docker-ce

    Updated 20 Aug 2026

  2. Concepts 10 min

    Docker Containers, Images, Registries and Daemon

    Get the four things every later guide assumes, each shown with a command rather than a diagram.

    docker version

    Updated 20 Aug 2026

  3. Concepts 13 min

    Docker Container Process Model

    Prove in six commands that a container is an ordinary Linux process with a restricted view.

    ls -l /proc/$PID/ns

    Updated 20 Aug 2026

  4. Configuration 12 min

    Docker Engine Upgrade, Pinning and Removal

    Pin a version so an unrelated apt upgrade cannot move it, and uninstall without losing volumes.

    apt-mark hold docker-ce

    Updated 20 Aug 2026

Containers and Images4 guides

Run, inspect and manage containers and the images behind them.

  1. Hands-on Lab 12 min

    Running and Managing Docker Containers

    Drive a container through its whole lifecycle, and tell a stopped one from no container.

    docker ps -a

    Updated 20 Aug 2026

  2. Hands-on Lab 14 min

    Essential Docker CLI Commands

    The dozen commands that cover most days, grouped by what you are trying to find out.

    docker inspect --format

    Updated 20 Aug 2026

  3. Troubleshooting 12 min

    Inspecting Docker Containers and Processes

    Answer the four questions you ask when something is wrong, each with its own command.

    docker diff web

    Debugging Updated 20 Aug 2026

  4. Concepts 14 min

    Docker PID 1, Signals and Graceful Shutdown

    Fix why docker stop takes ten seconds and ends in exit 137.

    docker run --init

    Updated 20 Aug 2026

Storage and Networking5 guides

Persist data and connect containers to each other and the outside.

  1. Hands-on Lab 14 min

    Docker Port Publishing and Container Networking

    Understand why -p 8080:80 works and why two containers cannot find each other by name.

    -p 8080:80

    Updated 20 Aug 2026

  2. Hands-on Lab 14 min

    Docker User-Defined Networks and DNS

    Fix container name resolution with one command, and see what the default bridge does not give you.

    docker network create

    DNS Updated 20 Aug 2026

  3. Concepts 12 min

    Docker Network Drivers Beyond Bridge

    Choose between bridge, host, none, macvlan and overlay, and know what each costs.

    --network host

    Updated 20 Aug 2026

  4. Hands-on Lab 13 min

    Docker Volumes and Bind Mounts

    Stop losing data when a container dies, and pick the right one of the two ways.

    -v data:/var/lib/app

    Updated 20 Aug 2026

  5. Hands-on Lab 12 min

    Docker Volume Backup and Restore

    Back up a named volume that has no export command, using a throwaway container.

    tar czf - -C /data .

    Updated 20 Aug 2026

Dockerfiles and Builds10 guides

Turn a project into a reproducible image.

  1. Hands-on Lab 16 min

    Building Images with Dockerfiles

    Build a five-instruction image, then rebuild and watch the cache turn 0.6s into nothing.

    docker build -t app:1 .

    Updated 20 Aug 2026

  2. Concepts 14 min

    Dockerfile Instructions in Practice

    Settle ARG versus ENV and ENTRYPOINT versus CMD with one Dockerfile that exercises all of them.

    ENTRYPOINT vs CMD

    Updated 20 Aug 2026

  3. Hands-on Lab 12 min

    Docker Build Context and .dockerignore

    Find the stray 3MB file that made your image 6MB bigger, and stop sending it.

    .dockerignore

    Updated 20 Aug 2026

  4. Concepts 13 min

    Docker Image Layers and Build Cache

    Learn why instruction order decides whether your build takes one second or ninety.

    ---> Using cache

    Updated 21 Aug 2026

  5. Best Practices 13 min

    Docker Build Cache Mounts and Secrets

    Keep a package cache across --no-cache, and use a secret that never lands in a layer.

    --mount=type=secret

    Security Updated 21 Aug 2026

  6. Hands-on Lab 15 min

    Docker Multi-Stage Builds

    Leave compilers and package managers out of the thing you ship.

    COPY --from=build

    Updated 21 Aug 2026

  7. Hands-on Lab 14 min

    Docker Image Tagging and Publishing

    Learn how an image name is really parsed, and why :latest is a trap.

    docker tag / push

    Updated 21 Aug 2026

  8. Hands-on Lab 13 min

    Docker Private Registry Authentication

    Log in properly, then find where Docker just wrote your credentials in plain text.

    ~/.docker/config.json

    Security Updated 21 Aug 2026

  9. Hands-on Lab 10 min

    Moving Docker Images Without a Registry

    Move an image between hosts when a registry is not available.

    docker save | docker load

    Updated 21 Aug 2026

  10. Hands-on Lab 18 min

    Docker Buildx and Multi-Platform Images

    Serve amd64, arm64 and arm/v7 from one tag - past the three things that block it.

    docker buildx build --platform

    Updated 21 Aug 2026

Docker Compose5 guides

Define and run multi-service applications.

  1. Hands-on Lab 13 min

    Docker Compose Fundamentals

    Replace a page of docker run flags with one file, and learn what Compose names things.

    compose.yaml

    Updated 21 Aug 2026

  2. Hands-on Lab 15 min

    Docker Compose Multi-Service Applications

    Build the shape almost every project takes: an app, a database and a project network.

    depends_on

    Updated 21 Aug 2026

  3. Concepts 13 min

    Docker Compose Health Checks and Dependencies

    Close the gap between Up and ready, where flaky startups live.

    condition: service_healthy

    Updated 21 Aug 2026

  4. Configuration 14 min

    Docker Compose Environment and Secrets

    Tell apart four different things all called environment, doing four different jobs.

    env_file vs environment

    Updated 21 Aug 2026

  5. Best Practices 15 min

    Docker Compose Profiles, Overrides and Watch

    Turn one Compose file into a workflow with optional services and per-machine overrides.

    --profile debug

    Updated 21 Aug 2026

Operations and Troubleshooting8 guides

Diagnose, recover and keep disk under control.

  1. Configuration 14 min

    Docker Daemon Configuration

    Change every container on the host safely - and validate before a typo stops Docker starting.

    dockerd --validate

    Updated 21 Aug 2026

  2. Configuration 14 min

    Docker Restart Policies and Resource Limits

    Stop one container taking the host down with it.

    --restart on-failure:3

    Updated 21 Aug 2026

  3. Configuration 12 min

    Docker Container Logs and Rotation

    Cap logs that grow without limit - measured at 3.3 MB before the fix.

    max-size=10m

    Updated 21 Aug 2026

  4. Best Practices 13 min

    Docker Disk Usage and Cleanup

    Find where the space actually went. On this host it was the build cache, not images.

    docker system df -v

    Updated 22 Aug 2026

  5. Troubleshooting 16 min

    Docker Production Troubleshooting

    Recognise the exact wording of the failures you will actually meet, each reproduced on purpose.

    exit 137 / 125 / 126

    Debugging Updated 22 Aug 2026

  6. Troubleshooting 13 min

    Docker Daemon and Container Events

    Get the timeline logs do not give you: health failures, external kills and OOM in one stream.

    docker events --since 10m

    Debugging Updated 22 Aug 2026

  7. Hands-on Lab 12 min

    Docker Contexts and Remote Hosts

    Drive a remote Docker host over SSH instead of exposing the daemon port.

    docker context create

    Updated 22 Aug 2026

  8. Hands-on Lab 15 min

    Docker Build Cache in CI/CD

    Stop a CI worker rebuilding everything every run by pushing the build cache to a registry.

    --cache-to type=registry

    Updated 22 Aug 2026

Security and Production4 guides

Least privilege, supply chain and production hardening.

  1. Hands-on Lab 13 min

    Docker Image Vulnerability Scanning

    Read a CVE report, separate base-image findings from yours, then prove the fix.

    docker scout cves

    Security Updated 22 Aug 2026

  2. Best Practices 14 min

    Docker Image SBOMs and Provenance

    Answer "are we affected by this CVE" with a real SPDX SBOM rather than a guess.

    docker buildx --sbom=true

    Security Updated 22 Aug 2026

  3. Concepts 12 min

    Rootless Docker and Daemon Socket Access

    Understand why the docker group is equivalent to root, demonstrated rather than asserted.

    /var/run/docker.sock

    Security Updated 22 Aug 2026

  4. Hands-on Lab 16 min

    Docker Read-Only Containers and Capabilities

    Harden nginx to a read-only filesystem and four capabilities, including the two failed attempts.

    --cap-drop=ALL

    Security Updated 22 Aug 2026

Swarm and Multi-Host (optional)6 guides

An optional advanced track. Run services across a cluster of machines using the orchestrator built into Docker. Most readers get more value first from Operations and Security.

  1. Concepts 13 min

    Docker Swarm Cluster Architecture

    Use the orchestrator already in the engine you installed - managers, workers and raft.

    docker swarm init

    Updated 22 Aug 2026

  2. Hands-on Lab 14 min

    Docker Swarm Services and Scheduling

    Declare a desired state instead of a container, and watch six replicas spread.

    docker service create

    Updated 22 Aug 2026

  3. Concepts 14 min

    Docker Swarm Overlay Networks and Routing Mesh

    See every node answer a published port, including nodes running none of your containers.

    docker network create -d overlay

    Updated 22 Aug 2026

  4. Hands-on Lab 14 min

    Docker Swarm Rolling Updates and Rollback

    Change the image on a live service and watch tasks replaced a few at a time.

    docker service update --image

    Updated 22 Aug 2026

  5. Hands-on Lab 12 min

    Docker Swarm Node Maintenance and Failover

    Take a machine out of service without dropping a request.

    docker node update --availability drain

    Updated 22 Aug 2026

  6. Hands-on Lab 15 min

    Docker Swarm Stacks and Secrets

    Deploy a Compose file to a whole cluster, and give a password only to the services that need it.

    docker stack deploy

    Security Updated 22 Aug 2026

Command Cheat Sheets3 sheets

Searchable references for day-to-day work.

← Back to Learn