Docker Cheatsheet
Quick reference for essential Docker commands. Bookmark this page for daily Docker operations covering containers, images, volumes, networking, Compose, and Swarm.
docker run -d nginxRun container in background
docker run -it ubuntu bashRun interactive shell
docker run --rm alpineRemove container after exit
docker psList running containers
docker ps -aList all containers
docker stop containerStop container (SIGTERM)
docker kill containerStop container (SIGKILL)
docker start containerStart stopped container
docker restart containerRestart container
docker rm containerRemove stopped container
docker rm -f containerForce remove running container
docker container pruneRemove all stopped containers
docker logs containerView container logs
docker logs -f containerFollow logs (tail -f)
docker exec -it container bashExecute command in running container
docker inspect containerShow container details
docker statsShow resource usage
docker top containerShow running processes
docker imagesList local images
docker pull nginx:alpinePull image from registry
docker build -t myapp .Build image from Dockerfile
docker build --no-cache -t myapp .Build without cache
docker rmi imageRemove image
docker rmi -f imageForce remove image
docker image pruneRemove dangling images
docker image prune -aRemove all unused images
docker tag myapp myrepo/myapp:v1Tag image for registry
docker push myrepo/myapp:v1Push image to registry
docker history imageShow image layers
docker save -o myapp.tar myappSave image to tar file
docker load -i myapp.tarLoad image from tar file
FROM node:18-alpine # Base image
WORKDIR /app # Set working directory
COPY package*.json ./ # Copy files
RUN npm ci --only=production # Run command during build
COPY . . # Copy remaining files
ENV NODE_ENV=production # Set environment variable
EXPOSE 3000 # Document port
USER nodejs # Switch to non-root user
HEALTHCHECK CMD curl -f http://localhost/ || exit 1
CMD ["node", "server.js"] # Default command
-p 8080:80Map host port 8080 to container port 80
-p 127.0.0.1:8080:80Bind to specific host IP
-p 8080-8085:80-85Map range of ports
-p 53:53/udpUDP port mapping
-PPublish all exposed ports to random ports
docker port containerShow port mappings
--memory=512mMemory limit (512 MB)
--memory-swap=1gMemory + swap limit
--cpus=0.5CPU limit (half core)
--cpuset-cpus=0-1Pin to CPU cores 0 and 1
--pids-limit=100Limit number of processes
--restart=unless-stoppedRestart policy
docker volume create mydataCreate named volume
docker volume lsList volumes
docker volume rm mydataRemove volume
docker volume pruneRemove unused volumes
-v mydata:/dataMount named volume
-v "$PWD":/appBind mount current directory
--mount type=bind,source="$(pwd)",target=/appBind mount (explicit)
--mount type=tmpfs,destination=/tmptmpfs mount (in-memory)
docker network lsList networks
docker network create mynetCreate bridge network
docker network create -d overlay mynetCreate overlay network
--network mynetConnect container to network
docker network connect mynet containerConnect existing container
docker network disconnect mynet containerDisconnect container
docker network inspect mynetShow network details
--network hostUse host network (Linux only)
--network noneNo network (isolated)
docker compose upStart services (foreground)
docker compose up -dStart services (background)
docker compose up -d --buildRebuild and start
docker compose downStop and remove containers
docker compose down -vRemove containers and volumes
docker compose logs -fFollow logs
docker compose exec app bashRun command in service
docker compose psList services
docker compose buildBuild images
docker compose pullPull latest images
docker compose restartRestart services
docker compose stopStop services
docker compose startStart services
docker compose configValidate compose file
docker swarm initInitialize Swarm
docker swarm join --token TOKEN IP:2377Join worker node
docker node lsList nodes
docker service create --name web -p 80:80 --replicas 3 nginxCreate service
docker service lsList services
docker service ps webList service tasks
docker service scale web=5Scale service
docker service update --image nginx:alpine webRolling update
docker service rollback webRollback service
docker service rm webRemove service
docker secret create mysecret ./secret.txtCreate secret
docker secret lsList secrets
docker stack deploy -c docker-compose.yml myappDeploy stack
docker stack lsList stacks
docker stack rm myappRemove stack
docker system dfShow disk usage
docker system df -vDetailed disk usage
docker system pruneRemove unused data
docker system prune -aRemove all unused data
docker system prune -a --volumesRemove everything including volumes
docker builder pruneRemove build cache
docker image prune -aRemove unused images
docker container pruneRemove stopped containers
docker volume pruneRemove unused volumes
docker network pruneRemove unused networks
docker logs containerView container logs
docker inspect containerGet container details
docker inspect --format='{{.State.Status}}' containerGet specific field
docker eventsStream Docker events
docker diff containerShow filesystem changes
docker exec -it container bashEnter container for debugging
docker run -it --rm --entrypoint /bin/sh imageDebug image before running
docker infoShow system info
docker versionShow version info
-dDetached mode (background)
-itInteractive + TTY (shell access)
--rmRemove container after exit
-vVolume mount
-pPort mapping
-eEnvironment variable
--nameContainer name
--networkNetwork
--restartRestart policy
--memoryMemory limit
--cpusCPU limit
-fFollow logs / force
-aAll containers
-qQuiet (IDs only)
Bookmark this cheatsheet for quick reference. Practice these commands to build muscle memory for daily Docker operations.