Docker & Containers — Level by Level
Learning Hub / Containers & Docker

Docker & Containers — Level by Level

Beginner → Practitioner13 lessonsAvailable

Every Kubernetes pod, CI job and edge appliance runs containers. This track takes you from your first docker run to building small secure images, running multi-service apps with Docker Compose, pushing and pulling from public and private registries, tuning the daemon with daemon.json, and fixing the certificate errors that stop a pull in its tracks, including when (and when not) to bypass them.

You'll meetdocker runPython.NETWindows containersDockerfilemulti-stagevolumesnetworksdocker composeregistrypush / pulldaemon.jsoninsecure-registriescerts.dx509Trivy
Start lesson 01 →

What you'll be able to do

  • Explain what a container is (namespaces + cgroups + an image) and run, inspect and debug one
  • Write Dockerfiles that build small, cached, non-root images with multi-stage builds
  • Run multi-service apps with Docker Compose: networks, volumes, health checks, secrets
  • Tag, push and pull images from Docker Hub, ECR, Harbor and your own registry
  • Run a private registry with TLS and login, and configure the daemon with daemon.json
  • Fix x509 certificate errors properly, and know exactly what the insecure-registry bypass does
  • Containerise a real two-tier app (Python, and .NET on Linux or Windows) and expose it to other machines

Before you start

Linux command line (Linux — Level by Level, Level 1).

How it works

Each lesson: plain-language idea → how it really works → hands-on. Each section ends with a cheat sheet & self-check.

Curriculum

Lessons marked “Read” are ready; the rest are on the way.

Real-world scenarios

Work through each one: symptom → misleading signal → evidence → root cause → prevention.

x509: certificate signed by unknown authority

A new private registry works in the browser but every docker pull fails. Fix it without turning off TLS.

Docker won't start after a config change

One line added to daemon.json and the daemon is down on a production host.

The disk filled up overnight

Container logs and old images ate /var/lib/docker. Clean up and stop it happening again.

toomanyrequests from Docker Hub

CI pipelines fail at pull time. Log in, mirror or cache so builds stop depending on luck.

This site is a public version of my personal engineering knowledge hub. It intentionally excludes confidential company information and internal operational details.