What and Why

Your app works on your laptop. It fails on the staging server. The investigation: different Python version, missing system library, environment variable set in one place but not another. You fix it by adding a setup doc that's already out of date by the time someone else reads it.

Containers solve this by packaging the application and its runtime dependencies together into a single, portable unit. A container image bundles your binary, its libraries, its config structure, and its expected OS — everything except the kernel. Run the image anywhere Docker runs and you get the same behavior.

Docker is the dominant container runtime. You'll encounter it when:

  • Shipping applications to production servers
  • Standardizing dev environments across a team
  • Building the artifact stage of a CI/CD pipeline
  • Running dependencies (Postgres, Redis, third-party APIs) locally without installing them

Core Concepts

Containers vs. Virtual Machines

Both isolate workloads. The difference is where the boundary sits.

In the full tutorial

  • How It Works in Practice
  • Common Mistakes
  • Tradeoffs
  • Quick Reference

Glossary history

Click dotted jargon to save explanations here.