Docker
Dockerfile discipline, Compose-based dev ergonomics, hardened multi-stage realism.
Lesson outline
-
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
Install Docker Desktop on Windows
Step-by-step tutorial to install Docker Desktop on Windows for practical Docker mastery.
-
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
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
Verify Docker Installation
Learn how to verify your Docker installation by running the hello-world image, confirming setup is correct for container development.
-
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
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
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
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
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
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
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
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
Docker Build Cache
Master Docker build cache: speed up builds, avoid redundant layers, and optimize CI/CD. Hands-on steps and best practices.
-
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
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
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
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
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
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
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
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
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
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
Custom Bridge Networks
Create and use custom bridge networks in Docker for secure, isolated container communication. Hands-on steps, troubleshooting, and next steps.
-
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
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
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
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
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
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
Volumes in Compose
Define and manage persistent data volumes in Docker Compose for reliable stateful services.
-
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
depends_on Start Order
Use depends_on to control container start order in Docker Compose — a hands-on lesson for progressive mastery.
-
35
Docker Compose Build
Learn to build images using docker compose build for efficient multi-service development.
-
36
Override Compose Config
Learn to override Docker Compose configurations using multiple files for environment-specific settings.
-
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
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
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
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
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
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
Container health checks
Learn to manage container health checks in Docker, including configuration, troubleshooting, and practical application for robust container orchestration.
-
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
Limit container CPU and memory
Restrict CPU and memory usage for Docker containers with practical commands and resource limits.
-
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
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
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
Pull Images from Private Registries
Learn how to pull Docker images from private registries with authentication, hands-on steps, and common troubleshooting tips.
-
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
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
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
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
Bind mount host directories
Learn to bind mount host directories into Docker containers with practical steps, troubleshooting, and what to study next.
-
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
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
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
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
Use Docker Secrets
Use Docker secrets for sensitive data — Docker.
-
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
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
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
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
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
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
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
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.