← All Cheat Sheets
Copy curl command
Docker Cheat Sheet Cheet says: Containers make everything portable!
Basics
Run a container docker run nginx
docker run -d nginx # Detached
docker run -p 8080:80 nginx # Port mapping
docker run -v /host:/container nginx # Volume mount
docker run --rm nginx # Remove when stopped
docker run -it ubuntu bash # Interactive
List containers docker ps # Running
docker ps -a # All
Stop/Start docker stop container_id
docker start container_id
docker restart container_id
Remove docker rm container_id
docker rm -f container_id # Force
Images
List images docker images
Pull image docker pull nginx:latest
Build image docker build -t myapp:1.0 .
Tag image docker tag myapp:1.0 registry/myapp:1.0
Push to registry docker push registry/myapp:1.0
Remove image docker rmi image_id
Logs & Exec
View logs docker logs container_id
docker logs -f container_id # Follow
Execute command in container docker exec -it container_id bash
docker exec container_id ls /app
Dockerfile Basics
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Docker Compose
docker-compose.yml version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
depends_on:
- db
db:
image: postgres:15
volumes:
- pgdata:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=secret
volumes:
pgdata:
Compose commands docker compose up
docker compose up -d # Detached
docker compose down
docker compose logs -f
docker compose ps
docker compose exec web bash
Cleanup
Remove stopped containers docker container prune
Remove unused images docker image prune
docker image prune -a # All unused
Remove everything unused docker system prune
docker system prune -a --volumes # Nuclear option
Check disk usage docker system df
Networking
List networks docker network ls
Create network docker network create mynet
Connect container to network docker run --network mynet nginx
Inspect network docker network inspect mynet
Volumes
List volumes docker volume ls
Create volume docker volume create mydata
Mount volume docker run -v mydata:/data nginx
Inspect volume docker volume inspect mydata
Remove volume docker volume rm mydata
Pro Tips
Copy files to/from container docker cp file.txt container:/path
docker cp container:/path/file.txt .
View resource usage docker stats
Inspect container docker inspect container_id
Save/Load images docker save myapp > myapp.tar
docker load < myapp.tar