Docker packages applications with their dependencies into portable containers.
Core concepts:
- Image: Read-only template built from a Dockerfile
- Container: Running instance of an image
- Layer: Images are built in layers, each layer cached separately
- Registry: Where images are stored (Docker Hub, ECR, GCR)
Interview question: "What's the difference between an image and a container?"
An image is a blueprint. A container is a running process created from that blueprint. You can create many containers from one image.