📖 Guide
Docker Commands Cheat Sheet — Complete Reference
Every Docker command you need, from container basics to Compose orchestration. Searchable and organized.
121 commands across 10 categories
Container LifecycleContainer InspectionImagesExec & CopyVolumesNetworksDocker ComposeRegistry & AuthSystem & CleanupBuildx & Multi-Platform
Container Lifecycle
| Command | Description |
|---|---|
docker run <image>e.g. docker run nginx | Create and start a container |
docker run -d <image> | Run container in background (detached) |
docker run -it <image> bash | Run interactively with a shell |
docker run --name <name> <image>e.g. docker run --name web nginx | Run with a custom name |
docker run -p 8080:80 <image> | Map host port 8080 to container port 80 |
docker run -v /host:/container <image> | Mount a volume |
docker run --rm <image> | Auto-remove container when it exits |
docker run -e KEY=value <image> | Set environment variable |
docker run --env-file .env <image> | Load env vars from file |
docker run --network <net> <image> | Connect to a specific network |
docker run --restart=unless-stopped <image> | Auto-restart policy |
docker create <image> | Create container without starting |
docker start <container> | Start a stopped container |
docker stop <container> | Gracefully stop a running container |
docker restart <container> | Restart a container |
docker kill <container> | Force stop a container (SIGKILL) |
docker rm <container> | Remove a stopped container |
docker rm -f <container> | Force remove (even if running) |
docker rename <old> <new> | Rename a container |
docker pause <container> | Pause all processes in container |
docker unpause <container> | Unpause a paused container |
Container Inspection
| Command | Description |
|---|---|
docker ps | List running containers |
docker ps -a | List all containers (including stopped) |
docker ps -q | List only container IDs |
docker ps --format '{{.Names}}' | Custom output format |
docker logs <container> | View container logs |
docker logs -f <container> | Follow/stream logs in real-time |
docker logs --tail 100 <container> | Show last 100 log lines |
docker logs --since 1h <container> | Show logs from last hour |
docker inspect <container> | Full JSON details of container |
docker inspect -f '{{.NetworkSettings.IPAddress}}' <c> | Get container IP address |
docker stats | Live resource usage for all containers |
docker stats <container> | Live resource usage for specific container |
docker top <container> | Show running processes in container |
docker port <container> | List port mappings |
docker diff <container> | Show filesystem changes in container |
Images
| Command | Description |
|---|---|
docker images | List local images |
docker images -a | List all images (including intermediates) |
docker pull <image>e.g. docker pull node:20-alpine | Download an image from registry |
docker push <image> | Push image to registry |
docker build -t <name> .e.g. docker build -t myapp:latest . | Build image from Dockerfile in current dir |
docker build -f <file> . | Build with a specific Dockerfile |
docker build --no-cache . | Build without using cache |
docker build --build-arg KEY=val . | Pass build-time variable |
docker tag <image> <new-tag>e.g. docker tag myapp:latest myapp:v1.0 | Tag an image |
docker rmi <image> | Remove an image |
docker rmi $(docker images -q) | Remove all images ⚠️ |
docker image prune | Remove dangling (untagged) images |
docker image prune -a | Remove all unused images |
docker history <image> | Show image layer history |
docker save -o file.tar <image> | Export image to tar file |
docker load -i file.tar | Import image from tar file |
Exec & Copy
| Command | Description |
|---|---|
docker exec -it <container> bash | Open interactive shell in running container |
docker exec -it <container> sh | Open shell (Alpine/minimal images) |
docker exec <container> <cmd>e.g. docker exec web ls /app | Run command in container |
docker exec -u root <container> <cmd> | Run command as root |
docker cp <container>:/path /host | Copy file from container to host |
docker cp /host <container>:/path | Copy file from host to container |
docker attach <container> | Attach to container's main process |
docker wait <container> | Block until container stops, print exit code |
docker commit <container> <image> | Create image from container's changes |
docker export <container> > file.tar | Export container filesystem |
Volumes
| Command | Description |
|---|---|
docker volume create <name> | Create a named volume |
docker volume ls | List all volumes |
docker volume inspect <name> | Show volume details |
docker volume rm <name> | Remove a volume |
docker volume prune | Remove all unused volumes |
docker run -v <vol>:/data <image>e.g. docker run -v pgdata:/var/lib/postgresql/data postgres | Mount named volume |
docker run -v $(pwd):/app <image> | Bind mount current directory |
docker run -v /host:/container:ro <image> | Mount as read-only |
docker run --tmpfs /tmp <image> | Mount tmpfs (in-memory filesystem) |
Networks
| Command | Description |
|---|---|
docker network ls | List all networks |
docker network create <name> | Create a bridge network |
docker network create --driver overlay <name> | Create overlay network (Swarm) |
docker network inspect <name> | Show network details and connected containers |
docker network connect <net> <container> | Connect container to network |
docker network disconnect <net> <container> | Disconnect container from network |
docker network rm <name> | Remove a network |
docker network prune | Remove all unused networks |
Docker Compose
| Command | Description |
|---|---|
docker compose up | Create and start all services |
docker compose up -d | Start services in background |
docker compose up --build | Rebuild images before starting |
docker compose up <service> | Start specific service only |
docker compose down | Stop and remove containers, networks |
docker compose down -v | Also remove volumes |
docker compose down --rmi all | Also remove images |
docker compose build | Build or rebuild services |
docker compose build --no-cache | Build without cache |
docker compose ps | List running compose services |
docker compose logs | View logs from all services |
docker compose logs -f <service> | Follow logs for specific service |
docker compose exec <service> bash | Open shell in running service |
docker compose run <service> <cmd> | Run one-off command in new container |
docker compose pull | Pull latest images for all services |
docker compose restart <service> | Restart a specific service |
docker compose stop | Stop services without removing |
docker compose config | Validate and view compose config |
docker compose -f prod.yml up -d | Use a specific compose file |
docker compose scale <service>=3 | Scale service to 3 instances |
Registry & Auth
| Command | Description |
|---|---|
docker login | Log in to Docker Hub |
docker login <registry>e.g. docker login ghcr.io | Log in to a private registry |
docker logout | Log out from registry |
docker search <term>e.g. docker search nginx | Search Docker Hub for images |
docker pull <registry>/<image>:<tag> | Pull from specific registry |
docker push <registry>/<image>:<tag> | Push to specific registry |
System & Cleanup
| Command | Description |
|---|---|
docker system df | Show Docker disk usage |
docker system prune | Remove unused data (stopped containers, dangling images, etc.) |
docker system prune -a | Remove ALL unused data (including unused images) ⚠️ |
docker system prune -a --volumes | Nuclear cleanup — remove everything unused ⚠️ |
docker system info | Display system-wide information |
docker system events | Stream real-time Docker events |
docker container prune | Remove all stopped containers |
docker rm $(docker ps -aq) | Remove all containers ⚠️ |
docker version | Show Docker client and server versions |
Buildx & Multi-Platform
| Command | Description |
|---|---|
docker buildx create --use | Create and use a new builder instance |
docker buildx build --platform linux/amd64,linux/arm64 -t <image> . | Multi-platform build |
docker buildx build --push -t <image> . | Build and push in one step |
docker buildx ls | List builder instances |
docker buildx inspect | Inspect current builder |
docker buildx prune | Clean up build cache |
docker manifest inspect <image> | Inspect image manifest (multi-arch info) |
📖 Free, searchable command reference. Bookmark this page for quick access.