Docker Learn

Learn Docker by doing

Concept videos, hands-on guides with terminals that run entirely in your browser, and guides that help you apply the work to your own projects.

Explore learning paths

What would you like to learn about?

Learning path
Beginner · 5 items

Get Started with Docker Sandboxes

Developers and hobbyists new to sandboxes, working solo.

Learn what a Docker Sandbox is, run an AI coding agent inside one, customize it with kits, and capture the whole setup in a file you can share.

Explore →
Learning path
Intermediate · 6 items

Build and customize Docker Sandbox environments

Developers who have outgrown the defaults, and team leads packaging an environment for everyone else.

Build your own Docker Sandbox kits — tools, skills, and authenticated access to your services — and publish them so your team gets the same environment.

Explore →
Learning path
Beginner · 4 items

Get started with Docker containers

Developers new to Docker, or who have used it without knowing what it was doing.

Learn what containers and images are, run a real app in a container, keep its data, and run it alongside a database with Docker Compose.

Explore →
Learning path
Beginner · 4 items

Build and share your own images

Developers who can run containers and are ready to package their own code.

Write a Dockerfile for a real app, make it build fast, make it small, and push it to Docker Hub for anyone to run.

Explore →
Learning path
Advanced · 7 items

Secure your software supply chain

Team leads and staff-plus engineers responsible for what their team ships.

Start from a trusted base, find and fix what's actually exploitable, enforce your standards, sign what you build, and let production run only what you can verify.

Explore →

What's new

  1. Guide
    How image layers and the build cache work

    Find out why changing one line of code can make docker build reinstall every dependency. See the layers your Dockerfile creates, then reorder it so the build cache skips the slow steps.

    20 min
  2. Guide
    Keep data with volumes and bind mounts

    A container's files disappear when you remove it. Keep a to-do app's database in a named volume so it survives a new container, bind-mount a directory so you can see the database on your own disk, and learn which one to reach for.

    20 min
  3. Guide
    Run a multi-container app with Compose

    Connect a to-do app to a MySQL database by hand on a Docker network, feel how many flags that takes, then describe the same app in one compose.yaml and run it with a single command.

    25 min
  4. Guide
    Run your first container

    Run a real to-do app in a container, reach it from your browser, run a second copy beside it, configure it with an environment variable, look inside it, and see what happens to its data when you remove it.

    20 min
  5. Guide
    Share your image on Docker Hub

    Name your image for a registry, sign in, and push it to Docker Hub with a version tag and latest, then pull it back and run it the way anyone else would.

    15 min
  6. Guide
    Shrink your image with multi-stage builds

    Split a Node.js Dockerfile into build stages and a slim final stage, so the image ships the built frontend and production dependencies but leaves the compilers and dev tools behind. Then measure the difference.

    20 min