Docker is a containerization platform that lets you package an application and all its dependencies (code, libraries, configuration, OS) into a single portable unit: a container.
Why does it matter?
- Run anywhere — a container that works on your machine will work exactly the same in production. The end of "it works on my machine."
- Isolation — each container runs isolated, but is much lighter than a full virtual machine. You can run dozens in parallel.
- Image registry — Docker Hub and private registries let you share ready-made images (Postgres, Redis, Nginx, etc).
- Compose — docker-compose.yml describes an entire system in YAML files. Spin up a full dev environment with one command.
Common uses: consistent dev environments across teams, microservices, CI/CD, cloud deployment (Kubernetes), data engineering systems, AI/ML workflows.
Docker is free for personal use and small teams (Docker Desktop free, Docker Hub free with limits). Paid plans for larger organizations add advanced security and collaboration features.
Docker was the start of the cloud-native revolution. Today, managing containers at scale happens through Kubernetes, but Docker remains the standard way to build and run a single container.
