Docker Cheat Sheet: The Most Important Commands for Everyday Work & Emergencies
Docker Cheat Sheet: Commands for Everyday Work & Emergencies
The most important Docker commands, short & to the point – for daily work, debugging and quick cleanups. Warning: commands marked ⚠️ are destructive (data loss possible).
🔎 Status & Overview
docker ps # running containers
docker ps -a # all containers (including stopped)
docker images # list images
docker volume ls # list volumes
docker network ls # list networks
docker system df # Docker disk usage overview
📦 Containers: Start, Stop, Remove
docker run --name <name> -d -p 8080:80 <image:tag> # start container (detached)
docker start <container> # start
docker stop <container> # stop (graceful)
docker kill <container> # hard stop
docker restart <container> # restart
docker rm <container> # remove (stopped)
docker rm -f <container> # remove (force) ⚠️
🐳 Images
docker pull <image:tag> # download image
docker build -t <name:tag> . # build image (in current folder)
docker rmi <image> # delete image
docker images -f "dangling=true" -q | xargs -r docker rmi # delete dangling images
🗂️ Volumes
docker volume ls
docker volume inspect <volume> # details/path
docker volume rm <volume> # delete a single volume ⚠️
docker volume prune -f # delete all unused volumes ⚠️
🌐 Networks
docker network ls
docker network inspect <network>
docker network create <name>
docker network connect <network> <container>
docker network disconnect <network> <container>
docker network prune -f # delete unused networks ⚠️
🛠️ Debugging: Logs, Shell & Files
docker logs -f --tail 200 <container> # live logs
docker exec -it <container> sh # shell (BusyBox/Alpine)
docker exec -it <container> bash # shell (Debian/Ubuntu)
docker cp <container>:/path/in/container /local # copy file/folder (container → host)
docker cp /local <container>:/path/in/container # copy file/folder (host → container)
🧹 Cleaning Up
docker system prune # delete unused data (asks first)
docker system prune -a -f # aggressive: including unused images ⚠️
docker image prune -a -f # delete unused images ⚠️
docker container prune -f # delete stopped containers
docker builder prune -a -f # delete build cache ⚠️
🧩 Docker Compose (in the project folder)
docker compose up -d # start (detached)
docker compose down # stop (keep volumes)
docker compose down -v # stop + delete volumes ⚠️
docker compose pull # update images
docker compose build --no-cache # rebuild without cache
docker compose logs -f <service> # service logs
docker compose exec <service> sh # shell inside a service
🔐 Env & Inspection Helpers
docker inspect <container-or-image> | jq . # all details as JSON
docker inspect -f '{{json .Mounts}}' <container> | jq . # mounts/volumes
docker exec <container> env # show environment variables
🚨 Emergency Block (use with care!)
# Stop all containers
docker stop $(docker ps -q)
# Delete all containers ⚠️
docker rm -f $(docker ps -aq)
# Delete all volumes ⚠️ (data loss!)
docker volume rm $(docker volume ls -q)
# Force-remove every unused object ⚠️
docker system prune -a -f --volumes
💡 Tips
- Short IDs: containers and images can be addressed by the first 3–4 characters of their ID.
- Use tags: avoid
latestin production – pin to fixed tags. - Persistence: before deleting, check whether a volume holds production data (
inspect). - Compose context: always run the commands from the correct project folder.