This course builds a practical mental model of Docker from first principles and then connects it to real-world DevOps workflows.
Each section below links to a focused module that you can study and practice independently.
1. Docker Images β How the Lego Bricks of Containers Really Work
π Go to: Docker Images
You will learn:
-
Image vs container vs registry
- Image as an immutable blueprint
- Container as a running process plus writable layer
- Registry as a Git-like store for built images
-
Layered filesystems and why each instruction matters
- How every Dockerfile instruction creates a new layer
- Why
RUN apt-get update && apt-get install ...vs multipleRUNs changes cache behavior - Refactoring a bad Dockerfile into a cache-friendly one
-
Build, tag, and push workflow
- Mental model of
docker build: context β Dockerfile β layers - Semantic tagging strategy (
1.0.0,1.0.0-prod,latest) - End-to-end flow from local build to private registry
- Mental model of
-
Inspecting and understanding images
- Using
docker inspectanddocker history - Detecting bloated layers
- Comparing
openjdk,temurin, anddistroless
- Using
-
Cleaning up images
- Dangling images and safe pruning
- When and how to use
docker image prune
-
Practical best practices
- Small base images
- Deterministic Dockerfiles
- No secrets in images
2. Containers β Processes, Not Tiny VMs
You will learn:
- Container = process + isolation
- Container lifecycle (create β start β stop β remove)
- Real-world
docker runusage - Logs, exec, inspect, and stats
- CPU and memory limits
- Practical rules of thumb
3. Docker Networking β Making Containers Talk Like Grown-Ups
You will learn:
- Network namespaces and bridges
- Built-in Docker network drivers
- User-defined bridges and DNS
- Port publishing vs internal ports
- Debugging connectivity issues
- Mapping Docker networking to Kubernetes
4. Volumes β Keeping Data Alive When Containers Die
You will learn:
- Ephemeral container filesystems
- Named volumes vs bind mounts vs tmpfs
- Persistent databases in Docker
- Bind mounts for development
- Volume inspection and backups
- Production storage rules
5. Dockerfile Instructions β Writing Dockerfiles Like an Engineer
π Go to: Dockerfile Mastery
You will learn:
- Dockerfile as a deterministic build recipe
- Core instructions and intent
- COPY vs ADD
- ENV vs ARG
- CMD vs ENTRYPOINT
- Security-aware Dockerfiles
- Refactoring bad Dockerfiles
6. Multi-Stage Builds β Shrinking Images and Attack Surface
π Go to: Multi-Stage Docker Builds
You will learn:
- Why single-stage images are dangerous
- Build vs runtime separation
- Node, Java, and Go examples
- Cache optimization
- Security benefits
- Migrating legacy Dockerfiles
7. Docker Security β Baseline Guardrails for Devs and DevOps
π Go to: Docker Security Essentials
You will learn:
- Container threat model
- Non-root users
- Capabilities and seccomp
- Image hygiene
- Runtime hardening flags
- Secrets handling
8. Registries and Tagging β Versioning Containers Like Real Software
π Go to: Docker Registries & Tagging
You will learn:
- Registries as artifact repositories
- Tagging strategies that scale
- CI/CD image workflows
- Image promotion across environments
- Authentication and access control
9. Docker Compose β Local Microservices Without Losing Your Mind
You will learn:
- Why Compose exists
- Services, networks, and volumes
- Multi-service local stacks
- Developer workflows
- Best practices
- Bridge to Kubernetes
10. Troubleshooting and Debugging β A Systematic Playbook
You will learn:
- Debugging mindset
- Containers that wonβt start
- Apps not reachable
- Inter-container connectivity issues
- Performance and OOM debugging
- Building a reusable debug SOP
11. Orchestration Hooks β From Docker to Kubernetes
π Go to: From Docker to Orchestrators
You will learn:
- Why Docker alone isnβt enough
- Docker β Kubernetes mental model mapping
- Swarm overview
- Image and rollout considerations in k8s
- Migration path from Compose to Kubernetes