Learn Docker from scratch: containers, images, Dockerfiles, Docker Compose, networking, volumes, and multi-stage builds with hands-on examples.
40 lessons in this tutorial
Master Docker from scratch with our comprehensive guide. Learn containerization, Docker commands, best practices, and how to deploy applications efficiently. Perfect for developers and DevOps engineers.
Discover the key benefits of Docker including consistency, isolation, portability, and efficiency. Explore real-world use cases across development, microservices, and CI/CD.
Understand the key differences between Docker containers and virtual machines. Learn about architecture, resource usage, startup times, and when to use each technology.
Step-by-step guide to installing Docker on Windows, macOS, and Linux. Set up Docker Desktop and verify your installation for a smooth development experience.
Complete guide to installing Docker Desktop on Windows. Learn how to set up WSL 2, install Docker Desktop, and configure your Windows development environment.
Complete guide to installing Docker Desktop on macOS. Learn how to set up Docker on both Intel and Apple Silicon Macs for native performance.
Complete guide to installing Docker Engine on Linux distributions. Learn how to install Docker on Ubuntu, Debian, CentOS, and configure it properly.
Master essential Docker concepts including images, containers, Dockerfiles, registries, and Docker Compose. Learn how these components work together.
Master Docker images - the building blocks of containers. Learn to pull, build, manage, and optimize images for efficient containerized applications.
Learn how Docker images are named, versioned, and organized using registries, repositories, and tags.
Explore Docker Hub - the world's largest container image registry. Learn to search, pull, and understand official images.
Learn how to pull Docker images from Docker Hub and search for the right ones using the CLI.
Learn how to view, filter, and inspect Docker images on your local system to understand their contents and metadata.
Learn to write Dockerfiles and use docker build to create custom images tailored to your applications.
Understand how Docker's layer system works and how to use build caching to make your builds dramatically faster.
Use multi-stage builds to create lean, secure production images by separating build-time and runtime environments in a single Dockerfile.
Practical techniques to shrink Docker image sizes, speed up builds, and harden images for production use.
Learn to tag, remove, save, load, and push Docker images, keeping your local environment clean and your registry organized.
Learn the complete lifecycle of Docker containers - create, run, inspect, manage, and clean them up. The hands-on foundation for everything else in Docker.
Master docker run - the most important Docker command. Learn every essential flag for port mapping, naming, detached mode, and more.
Control every stage of a container's life including start, stop, restart, pause, kill, and understand the difference between each.
Shell into running containers, execute one-off commands, copy files, and debug live services with docker exec and docker cp.
Stream, filter, and manage container logs. Monitor resource usage with docker stats. Know what your containers are doing in real time.
Understand Docker's networking model including bridge networks, port publishing, container DNS, and how containers communicate with each other.
Persist data beyond container lifecycles with named volumes and bind mounts. Understand when to use each and how to manage them.
Pass configuration into containers safely using environment variables, env files, and Docker secrets - without baking secrets into your images.
Keep your Docker environment clean. Remove stopped containers, reclaim disk space, and build automated cleanup habits.
Learn to write Dockerfiles from scratch - every instruction explained, with patterns and pitfalls from real-world usage.
The FROM instruction starts every Dockerfile. Learn how to choose the right base image, use variants wisely, and unlock multi-stage builds.
Copy files into your image correctly. Learn the difference between COPY and ADD, how to set ownership, use .dockerignore, and avoid common mistakes.
Execute commands at build time. Learn shell vs exec form, how to keep layers lean, combine commands efficiently, and avoid bloated images.
Define how your container starts. Understand exec vs shell form, the difference between CMD and ENTRYPOINT, and how to combine them for flexible, production-ready containers.
Inject variables into your builds and containers. Learn the critical difference between ENV (runtime) and ARG (build-time only), and how to use both safely.
Set working directories cleanly and document ports correctly. Plus LABEL, USER, VOLUME, and HEALTHCHECK - the supporting instructions every production Dockerfile needs.
The definitive checklist for production-grade Dockerfiles - security, caching, size, linting, and the habits that separate good images from great ones.
Complete, production-ready Dockerfiles for Node.js, Python, Go, React, and more - annotated with the reasoning behind every decision.
Learn how Docker volumes keep data beyond the life of a container, when to use named volumes versus bind mounts, and how to inspect and clean up storage safely.
Learn Docker named volumes, creating, using, inspecting and sharing named volumes between containers for persistent data storage that survives container restarts and deletion.
Master Docker bind mounts, mount host directories into containers for local development, live code reloading, and configuration injection. Understand the differences from named volumes.
Learn Docker volume management, listing, inspecting, backing up, restoring, and cleaning up volumes. Master docker volume commands for day-to-day operations and data migrations.