Maintenance

Site is under maintenance — quizzes are still available.

Go to quizzes
DevOps & backends · Containers & orchestration

Docker

Dockerfile discipline, Compose-based dev ergonomics, hardened multi-stage realism.

Sponsored

Lesson outline

  1. 1
    What Is Docker

    Docker is a platform for building, shipping, and running applications inside lightweight containers. This lesson explains why it matters and how to start.

  2. 2
    Install Docker Desktop on Windows

    Step-by-step tutorial to install Docker Desktop on Windows for practical Docker mastery.

  3. 3
    Install Docker Desktop

    Install Docker Desktop on macOS. This tutorial covers the download, installation, and initial launch of Docker Desktop. It also explains why this setup is a key step in your Docker learning path, along with configuration tips and common troubleshooting.

  4. 4
    Install Docker on Linux

    Step 4 of Docker series: hands-on guide to installing Docker Engine on Linux. Covers prerequisites, step-by-step setup, common pitfalls, and connections to next lessons.

  5. 5
    Verify Docker Installation

    Learn how to verify your Docker installation by running the hello-world image, confirming setup is correct for container development.

  6. 6
    Run your first Docker container

    Learn to run your first Docker container with a hands-on tutorial that covers core concepts, step-by-step instructions, troubleshooting, and the next steps in your Docker learning path.

  7. 7
    Docker Images vs Containers

    Understand the key differences between Docker images and containers: images are read-only blueprints, containers are running instances. This lesson clarifies the mental model with a practical walkthrough, troubleshooting tips, and next steps.

  8. 8
    Docker Image Management

    Learn how to list, inspect, and remove Docker images in this practical tutorial for developers. Hands-on exercises and troubleshooting included.

  9. 9
    List, stop, and remove containers

    Learn to list running/stopped containers, stop them gracefully, and remove them to keep your Docker environment clean. Includes practical commands, common flags, and troubleshooting.

  10. 10
    Pull Images from Docker Hub

    Pull images from Docker Hub — Docker tutorial lesson 10. Hands-on steps to fetch container images from the registry, troubleshoot common issues, and connect to the next lesson in the track.

  11. 11
    Tag and push images to Docker Hub

    Tag and push images to Docker Hub, the official registry. Learn the docker tag and docker push commands to share your images with the world or your team. This lesson covers tagging conventions, pushing to repositories, and the workflow for publishing Docker images.

  12. 12
    Create a Dockerfile for a Python App

    Learn to create a Dockerfile for a Python app in this hands-on Docker tutorial. Step by step, you'll build, troubleshoot, and optimize a container for your Python project — perfect for developers progressing through the Docker track.

  13. 13
    Build a Custom Docker Image

    Learn to build a custom Docker image from a Dockerfile using best practices. This lesson covers the build process, optimization tips, and common pitfalls.

  14. 14
    Docker Build Cache

    Master Docker build cache: speed up builds, avoid redundant layers, and optimize CI/CD. Hands-on steps and best practices.

  15. 15
    Expose Ports with EXPOSE and -p

    Learn how to expose container ports using EXPOSE in Dockerfiles and the -p flag at runtime, with hands-on steps and troubleshooting.

  16. 16
    Set Environment Variables

    Learn how to set environment variables in Docker containers using ENV in Dockerfiles, --env with docker run, and environment blocks in Compose. Hands-on examples and edge cases included.

  17. 17
    Run Containers in Detached Mode

    Learn how to run Docker containers in detached mode, enabling background execution for long-running services. This lesson covers the `-d` flag, practical use cases, and how to manage containers without tying them to your terminal.

  18. 18
    View Container Logs

    Learn to view Docker container logs in real time. This lesson covers tailing logs, filtering outputs, and using docker logs effectively.

  19. 19
    Execute Commands in Running Containers

    Learn how to run commands inside active Docker containers without stopping them. This lesson covers `docker exec` with hands-on examples, troubleshooting tips, and best practices for debugging and managing running processes.

  20. 20
    Copy Files to and from Containers

    Master transferring files between your host machine and Docker containers using `docker cp`. This lesson covers the core concept, step-by-step walkthrough, and common edge cases, including handling running vs. stopped containers and directory targets.

  21. 21
    Docker Volumes for Persistent Data

    Master Docker volumes to persist data between container restarts and removals. Learn how bind mounts, named volumes, and tmpfs mounts work, with hands-on exercises and edge-case troubleshooting.

  22. 22
    Use Bind Mounts for Dev

    Learn to use bind mounts for development with Docker: mount host directories into containers for real-time code syncing, no rebuilds.

  23. 23
    Manage Docker Networks

    Learn to manage default bridge, custom bridges, and overlay networks in Docker. This lesson covers creating, connecting, and inspecting networks for container isolation and communication.

  24. 24
    Connect Containers with Default Bridge

    Learn how to connect containers using the default bridge network in Docker. This lesson covers the core concepts, step-by-step setup, hands-on exercises, and troubleshooting tips for leveraging Docker's default bridge network to enable container communication.

  25. 25
    Custom Bridge Networks

    Create and use custom bridge networks in Docker for secure, isolated container communication. Hands-on steps, troubleshooting, and next steps.

  26. 26
    Use Docker Compose

    Use Docker Compose to define multi‑container apps — Docker. Learn to define and run multi‑container applications with Compose in this hands‑on tutorial.

  27. 27
    Write a docker-compose.yml

    Learn to write a docker-compose.yml file step by step. This lesson covers core concepts, a hands-on walkthrough, troubleshooting, and edge cases for multi-container Docker applications.

  28. 28
    docker compose up Basics

    Master 'docker compose up' to launch multi-service apps with one command. This lesson covers syntax, detach mode, rebuild, and troubleshooting.

  29. 29
    Stop and Remove Compose Services

    Learn to stop and remove Docker Compose services with practical, step-by-step instructions. This lesson covers core concepts, hands-on exercises, troubleshooting common issues, and preparing for next steps in the Docker track.

  30. 30
    Scale Services with Compose

    Learn how to scale services with Docker Compose. This hands-on tutorial covers the core concepts, step-by-step scaling with docker-compose up --scale, troubleshooting, and best practices for production readiness.

  31. 31
    Pass environment variables in Compose

    Learn how to pass environment variables in Docker Compose for flexible configuration. This lesson covers .env files, inline variables, and host environment access with practical examples.

  32. 32
    Volumes in Compose

    Define and manage persistent data volumes in Docker Compose for reliable stateful services.

  33. 33
    Set up Networks in Compose

    Master configuring Docker Compose networks — custom bridges, aliases, external networks, and multi-service isolation with hands-on exercises.

  34. 34
    depends_on Start Order

    Use depends_on to control container start order in Docker Compose — a hands-on lesson for progressive mastery.

  35. 35
    Docker Compose Build

    Learn to build images using docker compose build for efficient multi-service development.

  36. 36
    Override Compose Config

    Learn to override Docker Compose configurations using multiple files for environment-specific settings.

  37. 37
    Compose Dev vs Prod

    Learn to configure Docker Compose for development and production environments, covering environment-specific overrides, volume mounts, and best practices.

  38. 38
    Write Efficient Multi-Stage Dockerfiles

    Master writing efficient multi-stage Dockerfiles in this concise Docker tutorial. Learn to reduce image size, improve build speed, and follow best practices through step-by-step exercises and troubleshooting tips.

  39. 39
    Optimize Image Size with Alpine

    Learn how to shrink Docker images using Alpine Linux as a base. This lesson covers why Alpine is smaller, how to switch base images, and hands-on steps to cut image size without breaking functionality.

  40. 40
    Install system dependencies in Docker

    Learn how to install system dependencies in Docker containers using apt-get and other package managers. This tutorial covers multi-stage builds, dependency caching, and best practices for minimal images.

  41. 41
    Copy Only Needed Files

    Learn how to copy only needed files into Docker images to minimize image size and improve build performance. This lesson covers best practices for selective file copying using .dockerignore and efficient COPY instructions.

  42. 42
    Python Scripts as Container Entrypoint

    Run Python scripts as container entrypoint in this Docker tutorial. Hands-on steps to set scripts as CMD/ENTRYPOINT, troubleshoot edge cases, and connect to next lessons.

  43. 43
    Container health checks

    Learn to manage container health checks in Docker, including configuration, troubleshooting, and practical application for robust container orchestration.

  44. 44
    Docker Health Checks in Compose

    Learn how to define and use health checks in Docker Compose to monitor container health, ensure service readiness, and handle failures automatically.

  45. 45
    Limit container CPU and memory

    Restrict CPU and memory usage for Docker containers with practical commands and resource limits.

  46. 46
    Set Restart Policies for Containers

    Learn how to set restart policies for Docker containers: understand always, unless-stopped, on-failure, and no. Step-by-step guide with hands-on exercise, troubleshooting, and next steps.

  47. 47
    Tag and version Docker images

    Learn how to tag and version your Docker images effectively. This lesson covers naming conventions, semantic versioning, and best practices for image management in real-world workflows.

  48. 48
    Push images to Docker Hub

    Learn how to push Docker images to Docker Hub registry with practical steps. Understand tagging, authentication, and troubleshooting for reliable image distribution.

  49. 49
    Pull Images from Private Registries

    Learn how to pull Docker images from private registries with authentication, hands-on steps, and common troubleshooting tips.

  50. 50
    Write efficient multi-stage Dockerfiles

    Learn to write efficient multi-stage Dockerfiles: understand the core concept, step-by-step implementation, hands-on walkthrough, and troubleshooting edge cases. This lesson helps developers produce lean, secure Docker images.

  51. 51
    Secure Images with Scanning

    Learn how to harden Docker images by integrating vulnerability scanning into your workflow. This lesson covers scanning tools, interpretation of results, and remediation steps to keep your container images safe.

  52. 52
    Container Logging Best Practices

    Implement container logging best practices in Docker. This lesson covers core concepts, step-by-step setup, hands-on walkthrough, troubleshooting, and next steps for progressive mastery.

  53. 53
    Docker Volumes for Persistent Data

    Learn how to use Docker volumes to persist data across container restarts, with a hands-on exercise and practical troubleshooting tips.

  54. 54
    Bind mount host directories

    Learn to bind mount host directories into Docker containers with practical steps, troubleshooting, and what to study next.

  55. 55
    Manage env vars in containers

    Learn how to manage environment variables in Docker containers: set, pass, and override env vars for configurable, secure deployments.

  56. 56
    Use .dockerignore to reduce build context

    Use .dockerignore to reduce build context in Docker. Learn how to exclude unnecessary files from the Docker build context, speeding up builds, reducing image size, and improving security — with a hands-on exercise.

  57. 57
    Optimize Docker Layer Caching

    Learn how to order Dockerfile instructions and leverage build cache to speed up image builds, reduce rebuild times, and improve CI/CD efficiency.

  58. 58
    Run containers as non-root user

    Learn to configure Docker containers to run as a non-root user for improved security. This lesson covers the core concept, step-by-step implementation, and practical exercises to apply the principle in your Dockerfiles.

  59. 59
    Use Docker Secrets

    Use Docker secrets for sensitive data — Docker.

  60. 60
    Health Check Probes

    Implement container health check probes in Docker. This lesson covers why probes matter, how to define HEALTHCHECK and readiness endpoints, and hands-on steps to configure them. Includes troubleshooting, edge cases, and what to learn next.

  61. 61
    Debug Containers with Docker

    Master container debugging using 'docker exec' for live inspection and 'docker logs' for output analysis. Learn step-by-step techniques, compare options, and troubleshoot common issues.

  62. 62
    Multi-Architecture Docker Images

    Learn to create multi-architecture Docker images with practical hands-on steps. Master cross-platform builds, manifest tooling, and troubleshooting for ARM64 and AMD64 targets in this Docker tutorial.

  63. 63
    Docker Registry with Auth

    Set up a Docker registry with authentication in this practical tutorial. Learn to configure TLS, create user credentials, and deploy a secure private registry for your container images.

  64. 64
    Multi-Service Stacks with Compose

    Learn to orchestrate multi-service stacks with Docker Compose. This lesson covers core concepts, hands-on walkthroughs, troubleshooting, and next steps for progressive mastery.

  65. 65
    Deploy Docker Swarm Stacks

    Deploy Docker stacks with Swarm mode. This lesson teaches how to use Docker Swarm to deploy multi-service applications as stacks, including practical exercises and next-step guidance.

  66. 66
    Use Docker Contexts for Remote Deployments

    Master Docker contexts to manage and deploy your containers across remote Docker hosts seamlessly, enhancing your DevOps workflow.

  67. 67
    CI/CD Pipeline with Docker & Actions

    Build a CI/CD pipeline using Docker and GitHub Actions. This lesson walks through creating automated builds, tests, and deployments with containerized workflows in a hands-on exercise.

Docker — step-by-step tutorials

What you will find here

This track walks through docker in order — each lesson is server-rendered HTML you can read without JavaScript. Follow the outline, then practice in the browser IDE when a lesson links to runnable code.

Tutorials vs quizzes and code samples

Tutorials teach in sequence. For quick checks use quizzes. For copy-paste snippets see code samples. For deeper reading browse articles.