Docker
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.