Docker
Curriculum
Docker · Containers

Docker Tutorial

A complete Docker path from beginner to pro - containers, images, Dockerfiles, Compose, networking, security, and real multi-service projects.

65 lessonsBeginner → ProDevOps
Start from the beginning

Curriculum

Work through each section in order. Every lesson ends with practice and key points so the idea sticks.

Beginner

Getting Started

5 lessons · ~52 min
  1. 1
    What is Docker?

    Learn what Docker is, why developers use it, and how containers make apps easier to run.

  2. 2
    Containers vs Virtual Machines

    Understand the difference between Docker containers and virtual machines in beginner-friendly terms.

  3. 3
    Install Docker Desktop / Engine

    Install Docker on your computer and verify that the modern Docker CLI and Compose V2 are available.

  4. 4
    Your First Container (hello-world)

    Run the hello-world image and understand what Docker does behind the scenes.

  5. 5
    Docker Architecture (Client, Daemon, Images)

    Learn the main parts of Docker: CLI client, daemon, registries, images, and containers.

Beginner

Images & Containers

6 lessons · ~67 min
  1. 6
    Images Explained

    Understand Docker images, tags, layers, and how images become containers.

  2. 7
    Containers Explained

    Learn what containers are, how they start and stop, and why containers can be temporary.

  3. 8
    docker run Essentials

    Learn the most important docker run options for names, detached mode, cleanup, ports, and environment variables.

  4. 9
    ps, logs, exec & inspect

    Use everyday commands to view containers, read logs, run commands inside containers, and inspect metadata.

  5. 10
    Start, Stop, Restart & Remove

    Manage the container lifecycle with start, stop, restart, rm, and cleanup commands.

  6. 11
    Docker Hub & Pulling Images

    Learn how Docker Hub works, how to pull images, and how to choose safer image tags.

Beginner

Building Images

4 lessons · ~47 min
  1. 12
    Dockerfile Intro

    Create your first Dockerfile and understand how Docker builds a custom image.

  2. 13
    FROM, RUN, COPY, CMD, ENTRYPOINT

    Learn the beginner Dockerfile instructions you will see in most real projects.

  3. 14
    docker build & Tags

    Build Docker images, tag them clearly, and understand the build context.

  4. 15
    .dockerignore

    Use .dockerignore to keep builds smaller, faster, and safer.

Beginner

Networking & Data

5 lessons · ~59 min
  1. 16
    Port Mapping (-p)

    Publish container ports so you can access web servers and APIs from your host computer.

  2. 17
    Volumes Basics

    Learn how Docker volumes persist data after containers are removed.

  3. 18
    Bind Mounts

    Mount a host folder into a container for local development and live file editing.

  4. 19
    Networks Intro

    Understand Docker networks and how containers communicate by name on user-defined networks.

  5. 20
    Environment Variables

    Configure containers with environment variables and env files.

Beginner

Compose Basics

4 lessons · ~49 min
  1. 21
    Docker Compose Intro

    Learn why Docker Compose is useful for apps with one or more services.

  2. 22
    compose.yaml Basics

    Understand the common parts of a Compose file: services, image, build, ports, environment, volumes, and networks.

  3. 23
    up, down, ps & logs

    Use core Docker Compose commands to start, stop, inspect, and debug a Compose project.

  4. 24
    Multi-service Compose

    Run an app and database together with Docker Compose service names, networks, and volumes.

Beginner

Putting It Together

1 lessons · ~15 min
  1. 25
    Mini Project: Node/Python App in Docker

    Build and run a tiny web app in Docker, then use Compose to manage it like a real project.

Intermediate

Better Images

4 lessons · ~47 min
  1. 26
    Multi-stage Builds

    Use multiple FROM stages to build application artifacts in one image and copy only the runtime files into a smaller final image.

  2. 27
    Layer Caching & Faster Builds

    Understand Docker layers, cache invalidation, and Dockerfile ordering so rebuilds stay fast during normal development.

  3. 28
    Slim & Distroless Image Mindset

    Choose base images intentionally and learn when slim, Alpine, scratch, or distroless images make sense.

  4. 29
    HEALTHCHECK

    Add container health checks so Docker can report whether the process is actually ready and responsive.

Intermediate

Compose Power

5 lessons · ~57 min
  1. 30
    Build with Compose

    Use Compose build settings to build local images, pass build args, select Dockerfiles, and run multi-service development stacks.

  2. 31
    depends_on & Startup Order

    Coordinate service startup in Compose and understand the difference between container start order and application readiness.

  3. 32
    Compose Networks

    Connect services with Compose networks, service-name DNS, network aliases, and frontend/backend isolation.

  4. 33
    Compose Volumes & Named Volumes

    Use bind mounts and named volumes in Compose for source code, database data, and persistent development state.

  5. 34
    Profiles & Overrides

    Use Compose profiles and override files to switch optional services and development settings on or off.

Intermediate

App Stacks

7 lessons · ~93 min
  1. 35
    Containerizing a Node/Express App

    Create a practical Dockerfile and Compose service for a Node or Express application with production dependencies and health checks.

  2. 36
    Containerizing a Flask/Django App

    Build Python web images with virtual environments, Gunicorn, environment variables, and database-backed Compose services.

  3. 37
    Containerizing a Go App

    Build compact Go application images with multi-stage builds, static binaries, and simple Compose integration.

  4. 38
    Containerizing a Next.js App

    Build Next.js images with standalone output, multi-stage installs, environment awareness, and Compose commands.

  5. 39
    Postgres in Docker

    Run Postgres with Compose using named volumes, local-only credentials, health checks, init scripts, and safe persistence expectations.

  6. 40
    MongoDB in Docker

    Run MongoDB with Compose, named volumes, local credentials, initialization scripts, and connection strings for app containers.

  7. 41
    Nginx Reverse Proxy Basics

    Place Nginx in front of app containers with Compose, upstream service names, static headers, and simple local routing.

Intermediate

Delivery

3 lessons · ~36 min
  1. 42
    Registries & docker push/pull

    Understand image registries, repository names, authentication, pulling base images, and pushing your own tags.

  2. 43
    Tagging & Versioning Images

    Create image tags that support releases, rollbacks, CI builds, and human-friendly development workflows.

  3. 44
    Secrets vs Env Files (Practical Safety)

    Handle configuration, env files, and local-only secrets responsibly without pretending Compose env files are a production secret manager.

Intermediate

Operations

4 lessons · ~46 min
  1. 45
    Debugging Containers

    Use docker logs, exec, inspect, events, exit codes, and temporary debug containers to find container problems.

  2. 46
    Logs & Basic Monitoring

    Read container logs, follow Compose output, add useful application logs, and inspect basic runtime statistics.

  3. 47
    CPU/Memory Limits

    Set container CPU and memory limits, understand reservations, and test how apps behave under resource pressure.

  4. 48
    Prune, Disk Use & Cleanup

    Clean Docker images, containers, volumes, and build cache safely while understanding what data each command can delete.

Advanced

Production Ready

3 lessons · ~49 min
  1. 49
    Docker Security Essentials

    Learn the production security habits that keep Docker images, containers, networks, and secrets safer.

  2. 50
    Non-root Users & Least Privilege

    Build images and run containers so applications have only the permissions they actually need.

  3. 51
    Image Scanning Mindset

    Understand vulnerability scanning, severity, false positives, and how to make scanning useful in real teams.

Advanced

Shipping

3 lessons · ~55 min
  1. 52
    Docker in CI/CD Pipelines

    Build, test, scan, tag, and publish Docker images from automated pipelines with production-friendly habits.

  2. 53
    Production-minded Compose

    Use Docker Compose responsibly for deployable environments, small production systems, and production-like staging.

  3. 54
    Backing Up Volumes & Data

    Protect Docker volumes, databases, uploads, and configuration with practical backup and restore workflows.

Advanced

Orchestration Path

2 lessons · ~30 min
  1. 55
    Swarm Intro (Conceptual)

    Understand Docker Swarm concepts so you can recognize where it fits in the orchestration path.

  2. 56
    From Docker to Kubernetes (Bridge Lesson)

    Connect familiar Docker ideas to Kubernetes concepts without getting lost in the full Kubernetes ecosystem.

Advanced

Pro Architecture

2 lessons · ~36 min
  1. 57
    Designing Containerized App Architecture

    Design containerized systems with clear service boundaries, configuration, networking, persistence, and deployment paths.

  2. 58
    Observability for Containers

    Collect useful logs, metrics, health checks, and traces from containerized applications.

Advanced

Capstone Projects

3 lessons · ~60 min
  1. 59
    Mini Project: Web App + Postgres + Nginx

    Build a followable production-style web stack with an app container, Postgres database, and Nginx reverse proxy.

  2. 60
    Mini Project: API + Worker + Redis

    Build an API that queues background jobs to Redis and a worker that processes them in a separate container.

  3. 61
    Mini Project: Next.js/Flask + DB Stack

    Build a full-stack Docker project with a frontend, Flask API, database, and reverse proxy.

Advanced

Polish & Next Steps

4 lessons · ~55 min
  1. 62
    Common Docker Mistakes (and Fixes)

    Recognize common Docker problems quickly and fix them with practical production-ready habits.

  2. 63
    Docker Ecosystem & Tools

    Know the wider container tooling ecosystem and when each tool helps in real workflows.

  3. 64
    Docker in Your Portfolio

    Show Docker skills in portfolio projects with clear architecture, reproducible setup, and production awareness.

  4. 65
    What to Learn After Docker

    Choose your next learning path after Docker: CI/CD, cloud deployment, Kubernetes, security, or platform engineering.