Skip to main content

Docker Commands Cheatsheet: Quick Reference

All Docker commands. Quick reference. Examples included. That's this cheatsheet.

🎯 How to Use This Cheatsheet​

This is your quick reference. All commands. All purposes. All examples. Bookmark this. Use it daily.

Container Commands​

docker run​

Purpose: Create and start a container

Basic:

docker run nginx

With options:

# Run in detached mode
docker run -d nginx

# Run with name
docker run --name my-nginx nginx

# Run with port mapping
docker run -p 8080:80 nginx

# Run with environment variable
docker run -e NODE_ENV=production my-app

# Run with volume mount
docker run -v /host/path:/container/path nginx

# Run with network
docker run --network my-network nginx

# Run with resource limits
docker run --memory="512m" --cpus="1.0" nginx

# Run interactively
docker run -it nginx sh

# Run and remove on exit
docker run --rm nginx

docker ps​

Purpose: List running containers

Basic:

docker ps

With options:

# List all containers (including stopped)
docker ps -a

# Show only IDs
docker ps -q

# Show size
docker ps -s

# Filter by name
docker ps --filter "name=nginx"

# Filter by status
docker ps --filter "status=exited"

docker stop​

Purpose: Stop running container(s)

Basic:

docker stop container-name

With options:

# Stop by ID
docker stop container-id

# Stop multiple
docker stop container1 container2

# Stop all running
docker stop $(docker ps -q)

# Stop with timeout
docker stop -t 10 container-name

docker start​

Purpose: Start stopped container(s)

Basic:

docker start container-name

With options:

# Start and attach
docker start -a container-name

# Start and show logs
docker start -i container-name

docker restart​

Purpose: Restart container(s)

Basic:

docker restart container-name

docker rm​

Purpose: Remove container(s)

Basic:

docker rm container-name

With options:

# Force remove running container
docker rm -f container-name

# Remove all stopped containers
docker rm $(docker ps -a -q -f status=exited)

# Remove with volumes
docker rm -v container-name

docker exec​

Purpose: Execute command in running container

Basic:

docker exec container-name command

With options:

# Interactive shell
docker exec -it container-name sh

# Run as specific user
docker exec -u root container-name command

# Run in specific directory
docker exec -w /app container-name pwd

# Set environment variable
docker exec -e VAR=value container-name env

docker logs​

Purpose: View container logs

Basic:

docker logs container-name

With options:

# Follow logs
docker logs -f container-name

# Show last N lines
docker logs --tail 100 container-name

# Show with timestamps
docker logs -t container-name

# Show since timestamp
docker logs --since "2024-01-01T00:00:00" container-name

# Show until timestamp
docker logs --until "2024-01-01T12:00:00" container-name

docker inspect​

Purpose: Inspect container/image/network/volume

Basic:

docker inspect container-name

With options:

# Inspect specific field
docker inspect -f '{{.State.Status}}' container-name

# Inspect IP address
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container-name

# Inspect as JSON
docker inspect --format='{{json .Config}}' container-name

Image Commands​

docker build​

Purpose: Build image from Dockerfile

Basic:

docker build .

With options:

# Tag image
docker build -t my-app:1.0 .

# Specify Dockerfile
docker build -f Dockerfile.prod -t my-app:1.0 .

# Build without cache
docker build --no-cache -t my-app:1.0 .

# Build with build args
docker build --build-arg NODE_ENV=production -t my-app:1.0 .

# Build with target stage
docker build --target builder -t my-app:builder .

# Build with progress
docker build --progress=plain -t my-app:1.0 .

docker images​

Purpose: List images

Basic:

docker images

With options:

# Show all images (including intermediate)
docker images -a

# Filter by name
docker images nginx

# Show only IDs
docker images -q

# Filter by label
docker images --filter "label=version=1.0"

docker pull​

Purpose: Pull image from registry

Basic:

docker pull nginx

With options:

# Pull specific tag
docker pull nginx:alpine

# Pull from specific registry
docker pull registry.example.com/my-app:1.0

# Pull all tags
docker pull -a nginx

docker push​

Purpose: Push image to registry

Basic:

docker push my-app:1.0

With options:

# Push to specific registry
docker push registry.example.com/my-app:1.0

# Push with all tags
docker push -a my-app

docker tag​

Purpose: Tag image

Basic:

docker tag source-image:tag target-image:tag

Example:

docker tag my-app:1.0 registry.example.com/my-app:1.0

docker rmi​

Purpose: Remove image(s)

Basic:

docker rmi image-name

With options:

# Force remove
docker rmi -f image-name

# Remove by ID
docker rmi image-id

# Remove multiple
docker rmi image1 image2

# Remove all unused images
docker image prune -a

docker history​

Purpose: Show image history

Basic:

docker history image-name

With options:

# Show without truncation
docker history --no-trunc image-name

# Show human-readable sizes
docker history --human image-name

Network Commands​

docker network ls​

Purpose: List networks

Basic:

docker network ls

docker network create​

Purpose: Create network

Basic:

docker network create my-network

With options:

# Create with driver
docker network create --driver bridge my-network

# Create with subnet
docker network create --subnet=172.20.0.0/16 my-network

# Create with gateway
docker network create --gateway=172.20.0.1 my-network

docker network inspect​

Purpose: Inspect network

Basic:

docker network inspect my-network

docker network connect​

Purpose: Connect container to network

Basic:

docker network connect my-network container-name

docker network disconnect​

Purpose: Disconnect container from network

Basic:

docker network disconnect my-network container-name

docker network rm​

Purpose: Remove network

Basic:

docker network rm my-network

With options:

# Remove unused networks
docker network prune

Volume Commands​

docker volume ls​

Purpose: List volumes

Basic:

docker volume ls

docker volume create​

Purpose: Create volume

Basic:

docker volume create my-volume

With options:

# Create with driver
docker volume create --driver local my-volume

# Create with options
docker volume create --opt type=tmpfs --opt device=tmpfs my-volume

docker volume inspect​

Purpose: Inspect volume

Basic:

docker volume inspect my-volume

docker volume rm​

Purpose: Remove volume

Basic:

docker volume rm my-volume

With options:

# Remove unused volumes
docker volume prune

Docker Compose Commands​

docker compose up​

Purpose: Start services

Basic:

docker compose up

With options:

# Start in detached mode
docker compose up -d

# Build before starting
docker compose up --build

# Start specific service
docker compose up app

# Scale service
docker compose up --scale app=3

# Remove orphans
docker compose up --remove-orphans

docker compose down​

Purpose: Stop and remove services

Basic:

docker compose down

With options:

# Remove volumes
docker compose down -v

# Remove images
docker compose down --rmi all

# Remove orphans
docker compose down --remove-orphans

docker compose ps​

Purpose: List services

Basic:

docker compose ps

docker compose logs​

Purpose: View service logs

Basic:

docker compose logs

With options:

# Follow logs
docker compose logs -f

# Show specific service
docker compose logs app

# Show last N lines
docker compose logs --tail 100

docker compose exec​

Purpose: Execute command in service

Basic:

docker compose exec app command

Example:

docker compose exec app sh

docker compose build​

Purpose: Build service images

Basic:

docker compose build

With options:

# Build without cache
docker compose build --no-cache

# Build specific service
docker compose build app

# Build and push
docker compose build --push

docker compose pull​

Purpose: Pull service images

Basic:

docker compose pull

docker compose restart​

Purpose: Restart services

Basic:

docker compose restart

docker compose stop​

Purpose: Stop services

Basic:

docker compose stop

docker compose start​

Purpose: Start services

Basic:

docker compose start

System Commands​

docker system df​

Purpose: Show disk usage

Basic:

docker system df

With options:

# Show detailed usage
docker system df -v

docker system prune​

Purpose: Remove unused data

Basic:

docker system prune

With options:

# Remove all unused data (including images)
docker system prune -a

# Remove volumes too
docker system prune -a --volumes

# Force without prompt
docker system prune -a -f

docker info​

Purpose: Show Docker system information

Basic:

docker info

docker version​

Purpose: Show Docker version

Basic:

docker version

Docker Swarm Commands​

docker swarm init​

Purpose: Initialize Swarm

Basic:

docker swarm init

With options:

# Specify advertise address
docker swarm init --advertise-addr 192.168.1.100

docker swarm join​

Purpose: Join Swarm

Basic:

docker swarm join --token SWMTKN-xxx 192.168.1.100:2377

docker service create​

Purpose: Create service

Basic:

docker service create --name web nginx

With options:

# Create with replicas
docker service create --name web --replicas 3 nginx

# Create with port
docker service create --name web --publish 80:80 nginx

# Create with network
docker service create --name web --network my-network nginx

# Create with constraints
docker service create --name web --constraint 'node.role==worker' nginx

docker service ls​

Purpose: List services

Basic:

docker service ls

docker service ps​

Purpose: List service tasks

Basic:

docker service ps web

docker service scale​

Purpose: Scale service

Basic:

docker service scale web=5

docker service update​

Purpose: Update service

Basic:

docker service update --image nginx:alpine web

docker service rm​

Purpose: Remove service

Basic:

docker service rm web

Docker Buildx Commands​

docker buildx build​

Purpose: Build with BuildKit

Basic:

docker buildx build -t my-app:1.0 .

With options:

# Build and push
docker buildx build --push -t my-app:1.0 .

# Build for multiple platforms
docker buildx build --platform linux/amd64,linux/arm64 -t my-app:1.0 .

# Build with cache
docker buildx build --cache-from my-app:buildcache -t my-app:1.0 .

docker buildx create​

Purpose: Create buildx builder

Basic:

docker buildx create --name my-builder

docker buildx use​

Purpose: Use builder

Basic:

docker buildx use my-builder

Docker Scout Commands​

docker scout cves​

Purpose: Scan image for vulnerabilities

Basic:

docker scout cves my-app:1.0

With options:

# Scan and output JSON
docker scout cves --format json my-app:1.0

# Scan and fail on critical
docker scout cves --only-severity critical my-app:1.0

docker scout compare​

Purpose: Compare images

Basic:

docker scout compare my-app:1.0 my-app:2.0

Common Command Combinations​

Clean Everything​

# Stop all containers
docker stop $(docker ps -q)

# Remove all containers
docker rm $(docker ps -a -q)

# Remove all images
docker rmi $(docker images -q)

# Clean everything
docker system prune -a --volumes

View Logs and Stats​

# View logs
docker logs -f container-name

# View stats
docker stats

# View events
docker events

Debug Container​

# Inspect container
docker inspect container-name

# Execute shell
docker exec -it container-name sh

# View logs
docker logs container-name

# Check processes
docker exec container-name ps aux

Quick Reference Table​

CommandPurposeExample
docker runCreate and start containerdocker run -d nginx
docker psList containersdocker ps -a
docker stopStop containerdocker stop container
docker startStart containerdocker start container
docker rmRemove containerdocker rm container
docker execExecute in containerdocker exec -it container sh
docker logsView logsdocker logs -f container
docker buildBuild imagedocker build -t app:1.0 .
docker imagesList imagesdocker images
docker pullPull imagedocker pull nginx
docker pushPush imagedocker push app:1.0
docker network lsList networksdocker network ls
docker volume lsList volumesdocker volume ls
docker compose upStart servicesdocker compose up -d
docker compose downStop servicesdocker compose down
docker system pruneClean updocker system prune -a

Key Takeaways​

  1. Bookmark this cheatsheet - Quick reference for daily use
  2. Practice commands - Hands-on experience is key
  3. Use help - docker command --help for details
  4. Combine commands - Chain commands for efficiency
  5. Use aliases - Create shortcuts for common commands

What's Next?​

Now that you have the Docker cheatsheet, you're ready for Kubernetes! Next: Kubernetes Introduction.


Remember: This cheatsheet is your daily reference. Bookmark it. Use it. Master Docker commands. Then move to Kubernetes.