Docker
A platform for packaging applications into lightweight, portable containers. 'Works on my machine' becomes 'works everywhere.'
What is Docker?
A platform for packaging applications into lightweight, portable containers. 'Works on my machine' becomes 'works everywhere.'
Docker is a intermediate-level concept that sits in the Kubernetes & Containers area of system design. Engineers reach for it whenever they need to reason about real-world trade-offs in that space — not just for textbook correctness, but because real production systems at companies like Netflix, Amazon, and Google make these decisions every day.
If you want to go deeper than this definition — with diagrams, code, and a quiz to lock it in — work through the "Docker" lesson linked below. It walks through the why, the mechanism, the trade-offs, and how the giants actually use it in production.
Learn Docker in depth
Full interactive lesson with diagrams, code examples, real-world references, and a quiz.
Open the Docker lessonRelated lessons
Lessons that touch on Docker as part of a larger topic.
CaaS
Containers as a Service, run Docker containers without managing the underlying cluster
intermediate · cloud infrastructure
Artifact Repository
Storing and managing build outputs. Docker images, binaries, and packages, in a versioned, access-controlled registry
intermediate · devops cicd
Containerization
Packaging applications with their dependencies into isolated, portable units that run anywhere
intermediate · kubernetes containers
Image Versioning
Tagging, semantic versioning, and immutable deployments for container images
intermediate · kubernetes containers
Container Registry
Centralized storage for container images, the Docker Hub, ECR, and GHCR of the world
intermediate · kubernetes containers
See also
Related glossary terms you might want to look up next.
Kubernetes
An orchestration platform that automates deploying, scaling, and managing containerized applications. K8s is the operating system for your cloud.
Microservices
An architecture where an application is split into small, independent services that communicate over the network. Each service owns its own data and can be deployed separately.