01 Overview
Docker packages an application and its dependencies into a portable container image that runs the same way on a laptop, a CI runner, or a production node. It's the base layer most container and orchestration tooling (Kubernetes, Compose, ECS) is built on top of.
→ official documentation02 Installation
Pick a platform. Each step is copy-pasteable on its own.
01 Remove old versions
sudo apt-get remove docker docker-engine docker.io containerd runc
02 Set up the apt repository
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
03 Add the repository to Apt sources
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
04 Install Docker Engine
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
05 Verify
sudo docker run hello-world
01 Remove old versions
sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
02 Add the repository
sudo dnf -y install dnf-plugins-core sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
03 Install Docker Engine
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
04 Enable and start the service
sudo systemctl enable --now docker
05 Verify
sudo docker run hello-world
01 Install via Homebrew
brew install --cask docker
02 Launch Docker Desktop once to finish setup
open /Applications/Docker.app
03 Verify
docker run hello-world
Note — commands assume sudo privileges and an up-to-date package index. Pin a specific version in production rather than tracking latest.
03 Install script
The steps above bundled into a single idempotent shell script for provisioning boxes unattended.
install-docker.sh
Ubuntu/Debian target · safe to re-run · exits non-zero on failure
04 Cheatsheet
The commands reached for most often once Docker is installed.
| Command | What it does |
|---|---|
| docker ps | List running containers |
| docker ps -a | List all containers, including stopped |
| docker images | List local images |
| docker build -t name:tag . | Build an image from a Dockerfile |
| docker run -d -p 8080:80 name | Run a container in the background with a port mapped |
| docker exec -it <id> sh | Open a shell inside a running container |
| docker logs -f <id> | Stream a container's logs |
| docker system prune -a | Remove unused images, containers, and networks |
| docker compose up -d | Start services defined in compose.yaml |