Docker
PDF
Markdown
HTML
The commands you reach for daily with the Docker CLI. docker compose (v2, a subcommand) has replaced the old docker-compose binary — both are shown where they differ.
Images
Command
Action
docker build -t app:1.0 .
build an image from the Dockerfile here
docker images
list local images
docker pull nginx:alpine
download an image
docker tag app:1.0 app:latest
add another tag
docker push registry/app:1.0
upload to a registry
docker rmi app:1.0
remove an image
Containers
Command
Action
docker run nginx
run a container in the foreground
docker ps
list running containers
docker ps -a
list all containers, including stopped
docker stop <id>
graceful stop (SIGTERM)
docker start / restart <id>
start / restart a container
docker rm <id>
remove a stopped container
docker exec -it <id> sh
open a shell inside a running container
docker logs -f <id>
follow a container's logs
Common run flags
Flag
Effect
-d
detached — run in the background
-p 8080:80
map host port 8080 to container port 80
-v ./data:/app/data
bind-mount a host folder
-e KEY=value
set an environment variable
--name web
give the container a stable name
--rm
auto-remove the container when it exits
--network mynet
attach to a user-defined network
A typical one-liner
docker run -d --name web --rm \
-p 8080 :80 -v ./html:/usr/share/nginx/html \
nginx:alpine
Compose
Command
Action
docker compose up -d
start the stack in the background
docker compose down
stop and remove the stack
docker compose ps
list the stack's containers
docker compose logs -f
follow logs for all services
docker compose build
rebuild service images
docker compose restart <svc>
restart one service
Clean Up
Command
Removes
docker system df
show what Docker is using (safe)
docker container prune
all stopped containers
docker image prune
dangling (untagged) images
docker image prune -a
all images not used by a container
docker volume prune
unused volumes
docker system prune -a
containers, networks, and unused images
prune deletes without asking twice. docker volume prune can wipe database data living in an unused volume, and system prune -a removes every image no running container references. Check docker system df first.