Docker#

Images#

Command

Action

docker images

list local images

docker pull IMAGE

pull from registry

docker push IMAGE

push

docker rmi IMAGE

remove image

docker tag IMAGE NEW

tag

docker build -t NAME .

build from Dockerfile

docker build --target STAGE . multi-stage target

docker buildx build --platform linux/amd64,linux/arm64 ... multi-arch

docker history IMAGE

layer history

docker image prune

remove dangling

docker system prune -a

nuke unused (careful)

Containers#

Command

Action

docker ps

running containers

docker ps -a

all

docker run --rm -it IMAGE bash

interactive

docker run -d -p 8080:80 IMAGE

detached, port-mapped

docker run -v $PWD:/work IMAGE

volume mount

docker run -e VAR=val IMAGE

env var

docker run --name N --network NET IMAGE

named, network

docker stop CONT / kill CONT

docker rm CONT / rm $(docker ps -aq)

docker logs -f CONT

follow logs

docker exec -it CONT bash shell into running container

docker inspect CONT

JSON details

docker stats

live stats

docker cp CONT:/path .

copy out

docker cp ./file CONT:/path copy in

Compose#

Command

Action

docker compose up

start (foreground)

docker compose up -d

start detached

docker compose down

stop + remove

docker compose down -v

also remove volumes

docker compose logs -f

follow logs

docker compose ps

services status

docker compose exec SVC bash shell into service

docker compose build

rebuild

docker compose pull

pull latest images

docker compose run --rm SVC CMD

one-off command

docker compose config

validate / merge config

Networks and Volumes#

Command

Action

docker network ls

docker network create NAME

docker network inspect NAME

docker network connect NET CONT

docker volume ls

docker volume create NAME

docker volume inspect NAME

docker volume rm NAME

Cleanup Recipes#

$ docker stop $(docker ps -q)

$ docker container prune -f

$ docker image prune -af

$ docker volume prune -f

$ docker system prune -af --volumes

Useful Flags#

Flag

Effect

-it

interactive + tty

--rm

auto-remove on exit

-d

detached

-p H:C

publish host:container

-v PATH:PATH

bind mount

--mount type=...

explicit mount syntax

-e VAR=val

environment variable

--env-file FILE

env from file

--name N

explicit name

--network N

custom network

--restart unless-stopped restart policy

--cap-add SYS_PTRACE

add Linux capability

--cap-drop ALL

drop all (then add what’s needed)

--read-only

read-only filesystem

--user UID:GID

run as user

--init

inject tini as PID 1