Docker cheat sheet

Docker cheat sheet

On support01 run Docker with sudo (drop it if your user is in the docker group).

Containers

TaskCommand
Run in background, publish a portsudo docker run -d --name web -p 8080:80 nginx:1.27
Run interactively, remove on exitsudo docker run -it --rm busybox sh
List running / allsudo docker ps / sudo docker ps -a
Logs, followsudo docker logs -f web
Shell into a running containersudo docker exec -it web sh
Stop / start / restartsudo docker stop web / start web / restart web
Remove (force)sudo docker rm -f web
Processes, live statssudo docker top web / sudo docker stats
Full detail as JSONsudo docker inspect web
One field from inspectsudo docker inspect -f '{{.NetworkSettings.IPAddress}}' web
Limit resourcessudo docker run -d --memory 128m --cpus 0.5 nginx:1.27

Images

TaskCommand
Search / pullsudo docker search nginx / sudo docker pull nginx:1.27
List / removesudo docker images / sudo docker rmi nginx:1.27
Layer historysudo docker history nginx:1.27
Build from a Dockerfilesudo docker build -t myapp:1.0 .
Tag / pushsudo docker tag myapp:1.0 registry/myapp:1.0 / push
Save / load a tarsudo docker save -o myapp.tar myapp:1.0 / load -i myapp.tar

Networking

TaskCommand
List networkssudo docker network ls
Create a user networksudo docker network create appnet
Attach at run timesudo docker run -d --network appnet --name db mysql:8
Attach / detach latersudo docker network connect appnet web / disconnect
Host / no network--network host / --network none

Containers on the same user-defined network resolve each other by container name. On the default bridge they do not.

Volumes and mounts

TaskCommand
Create / list / inspectsudo docker volume create data / ls / inspect data
Named volumesudo docker run -d -v data:/var/lib/mysql mysql:8
Bind mount a host dirsudo docker run -d -v /srv/site:/usr/share/nginx/html:ro nginx:1.27
Remove unusedsudo docker volume prune

Clean-up

sudo docker rm -f $(sudo docker ps -aq)
sudo docker system df
sudo docker system prune -a

Reference

docs.docker.com/reference/cli/docker