Docker cheat sheet
Docker cheat sheet
On support01 run Docker with sudo (drop it if your user is in the docker
group).
Containers
| Task | Command |
|---|
| Run in background, publish a port | sudo docker run -d --name web -p 8080:80 nginx:1.27 |
| Run interactively, remove on exit | sudo docker run -it --rm busybox sh |
| List running / all | sudo docker ps / sudo docker ps -a |
| Logs, follow | sudo docker logs -f web |
| Shell into a running container | sudo docker exec -it web sh |
| Stop / start / restart | sudo docker stop web / start web / restart web |
| Remove (force) | sudo docker rm -f web |
| Processes, live stats | sudo docker top web / sudo docker stats |
| Full detail as JSON | sudo docker inspect web |
| One field from inspect | sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' web |
| Limit resources | sudo docker run -d --memory 128m --cpus 0.5 nginx:1.27 |
Images
| Task | Command |
|---|
| Search / pull | sudo docker search nginx / sudo docker pull nginx:1.27 |
| List / remove | sudo docker images / sudo docker rmi nginx:1.27 |
| Layer history | sudo docker history nginx:1.27 |
| Build from a Dockerfile | sudo docker build -t myapp:1.0 . |
| Tag / push | sudo docker tag myapp:1.0 registry/myapp:1.0 / push |
| Save / load a tar | sudo docker save -o myapp.tar myapp:1.0 / load -i myapp.tar |
Networking
| Task | Command |
|---|
| List networks | sudo docker network ls |
| Create a user network | sudo docker network create appnet |
| Attach at run time | sudo docker run -d --network appnet --name db mysql:8 |
| Attach / detach later | sudo 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
| Task | Command |
|---|
| Create / list / inspect | sudo docker volume create data / ls / inspect data |
| Named volume | sudo docker run -d -v data:/var/lib/mysql mysql:8 |
| Bind mount a host dir | sudo docker run -d -v /srv/site:/usr/share/nginx/html:ro nginx:1.27 |
| Remove unused | sudo 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