DevOps
Docker icon

Docker

The default way to package an app and its dependencies into a container image that runs the same on your laptop, CI, and production.

What is Docker?

Docker is a platform for packaging an application, its dependencies, and its runtime environment into a single container image that runs consistently across your laptop, CI pipeline, and production server. It solved the "works on my machine" problem by making the environment itself part of what you ship, rather than something each machine has to be manually configured to match. It's become the baseline assumption most other deployment and CI tooling is built around.

Key features

  • Dockerfile format for defining a reproducible build of an image, layer by layer
  • Docker Compose for defining and running multi-container setups (app, database, cache) with one config file
  • Docker Hub and other registries for storing and distributing images
  • Isolated container runtime so dependencies and system libraries don't conflict between projects on the same machine
  • Broad ecosystem support, virtually every cloud platform and CI tool assumes Docker images as a deployment unit

Who it's for

Effectively every developer working on anything beyond a purely static site benefits from at least basic Docker familiarity, since so much hosting and CI tooling is built around container images. It adds real overhead for the simplest projects (a static site, a single script) where there's nothing to isolate in the first place.

Pricing

Docker Engine and the CLI are free and open-source. Docker Desktop and Docker Hub have free tiers with paid plans for teams needing more private repositories, seats, or advanced features.