Docker Cheatsheet

Quick reference for essential Docker commands. Bookmark this page for daily Docker operations covering containers, images, volumes, networking, Compose, and Swarm.

Container Management
docker run -d nginx

Run container in background

docker run -it ubuntu bash

Run interactive shell

docker run --rm alpine

Remove container after exit

docker ps

List running containers

docker ps -a

List all containers

docker stop container

Stop container (SIGTERM)

docker kill container

Stop container (SIGKILL)

docker start container

Start stopped container

docker restart container

Restart container

docker rm container

Remove stopped container

docker rm -f container

Force remove running container

docker container prune

Remove all stopped containers

docker logs container

View container logs

docker logs -f container

Follow logs (tail -f)

docker exec -it container bash

Execute command in running container

docker inspect container

Show container details

docker stats

Show resource usage

docker top container

Show running processes

Image Management
docker images

List local images

docker pull nginx:alpine

Pull image from registry

docker build -t myapp .

Build image from Dockerfile

docker build --no-cache -t myapp .

Build without cache

docker rmi image

Remove image

docker rmi -f image

Force remove image

docker image prune

Remove dangling images

docker image prune -a

Remove all unused images

docker tag myapp myrepo/myapp:v1

Tag image for registry

docker push myrepo/myapp:v1

Push image to registry

docker history image

Show image layers

docker save -o myapp.tar myapp

Save image to tar file

docker load -i myapp.tar

Load image from tar file

Dockerfile Instructions
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
Port Mapping
-p 8080:80

Map host port 8080 to container port 80

-p 127.0.0.1:8080:80

Bind to specific host IP

-p 8080-8085:80-85

Map range of ports

-p 53:53/udp

UDP port mapping

-P

Publish all exposed ports to random ports

docker port container

Show port mappings

Resource Limits
--memory=512m

Memory limit (512 MB)

--memory-swap=1g

Memory + swap limit

--cpus=0.5

CPU limit (half core)

--cpuset-cpus=0-1

Pin to CPU cores 0 and 1

--pids-limit=100

Limit number of processes

--restart=unless-stopped

Restart policy

Volumes
docker volume create mydata

Create named volume

docker volume ls

List volumes

docker volume rm mydata

Remove volume

docker volume prune

Remove unused volumes

-v mydata:/data

Mount named volume

-v "$PWD":/app

Bind mount current directory

--mount type=bind,source="$(pwd)",target=/app

Bind mount (explicit)

--mount type=tmpfs,destination=/tmp

tmpfs mount (in-memory)

Networking
docker network ls

List networks

docker network create mynet

Create bridge network

docker network create -d overlay mynet

Create overlay network

--network mynet

Connect container to network

docker network connect mynet container

Connect existing container

docker network disconnect mynet container

Disconnect container

docker network inspect mynet

Show network details

--network host

Use host network (Linux only)

--network none

No network (isolated)

Docker Compose
docker compose up

Start services (foreground)

docker compose up -d

Start services (background)

docker compose up -d --build

Rebuild and start

docker compose down

Stop and remove containers

docker compose down -v

Remove containers and volumes

docker compose logs -f

Follow logs

docker compose exec app bash

Run command in service

docker compose ps

List services

docker compose build

Build images

docker compose pull

Pull latest images

docker compose restart

Restart services

docker compose stop

Stop services

docker compose start

Start services

docker compose config

Validate compose file

Docker Swarm
docker swarm init

Initialize Swarm

docker swarm join --token TOKEN IP:2377

Join worker node

docker node ls

List nodes

docker service create --name web -p 80:80 --replicas 3 nginx

Create service

docker service ls

List services

docker service ps web

List service tasks

docker service scale web=5

Scale service

docker service update --image nginx:alpine web

Rolling update

docker service rollback web

Rollback service

docker service rm web

Remove service

docker secret create mysecret ./secret.txt

Create secret

docker secret ls

List secrets

docker stack deploy -c docker-compose.yml myapp

Deploy stack

docker stack ls

List stacks

docker stack rm myapp

Remove stack

Cleanup Commands
docker system df

Show disk usage

docker system df -v

Detailed disk usage

docker system prune

Remove unused data

docker system prune -a

Remove all unused data

docker system prune -a --volumes

Remove everything including volumes

docker builder prune

Remove build cache

docker image prune -a

Remove unused images

docker container prune

Remove stopped containers

docker volume prune

Remove unused volumes

docker network prune

Remove unused networks

Troubleshooting
docker logs container

View container logs

docker inspect container

Get container details

docker inspect --format='{{.State.Status}}' container

Get specific field

docker events

Stream Docker events

docker diff container

Show filesystem changes

docker exec -it container bash

Enter container for debugging

docker run -it --rm --entrypoint /bin/sh image

Debug image before running

docker info

Show system info

docker version

Show version info

Quick Flags Reference
-d

Detached mode (background)

-it

Interactive + TTY (shell access)

--rm

Remove container after exit

-v

Volume mount

-p

Port mapping

-e

Environment variable

--name

Container name

--network

Network

--restart

Restart policy

--memory

Memory limit

--cpus

CPU limit

-f

Follow logs / force

-a

All containers

-q

Quiet (IDs only)

Previous: Docker in DevOps Pipelines

Bookmark this cheatsheet for quick reference. Practice these commands to build muscle memory for daily Docker operations.