Images

# List local images
  docker images
  OR
  docker image ls

# Pull an image from a registry
  docker pull <image-name>:<tag>

# Build an image from a Dockerfile in current directory
  docker build -t <image-name>:<tag> .

# Build an image using a specific Dockerfile
  docker build -t <image-name>:<tag> -f <path-to-dockerfile> .

# Tag an image
  docker tag <image-id> <repo>/<image-name>:<tag>

# Push an image to a registry
  docker push <repo>/<image-name>:<tag>

# Inspect an image's details
  docker image inspect <image-name>

# View image history/layers
  docker history <image-name>

# Remove an image
  docker rmi <image-name>
  OR
  docker image rm <image-name>

# Remove all unused (dangling) images
  docker image prune

# Remove all images not used by any container
  docker image prune -a

Containers

# Run a new container
  docker run <image-name>

# Run a container in detached mode with a custom name
  docker run -d --name <container-name> <image-name>

# Run a container with port mapping
  docker run -d -p <host-port>:<container-port> <image-name>

# Run a container with an interactive shell
  docker run -it <image-name> /bin/bash

# Run a container with a volume mounted
  docker run -d -v <host-path>:<container-path> <image-name>

# Run a container with an environment variable
  docker run -d -e <VAR_NAME>=<value> <image-name>

# List running containers
  docker ps

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

# Start a stopped container
  docker start <container-name>

# Stop a running container
  docker stop <container-name>

# Restart a container
  docker restart <container-name>

# Pause/unpause a container
  docker pause <container-name>
  docker unpause <container-name>

# Rename a container
  docker rename <old-name> <new-name>

# Inspect a container's details
  docker inspect <container-name>

# View resource usage stats
  docker stats <container-name>

# Remove a stopped container
  docker rm <container-name>

# Force remove a running container
  docker rm -f <container-name>

# Remove all stopped containers
  docker container prune

Exec & Logs

# Execute a command inside a running container
  docker exec -it <container-name> /bin/bash

# Run a single command inside a running container
  docker exec <container-name> <command>

# View container logs
  docker logs <container-name>

# Follow (stream) container logs
  docker logs -f <container-name>

# View the last N lines of logs
  docker logs --tail <N> <container-name>

# Copy a file from container to host
  docker cp <container-name>:<container-path> <host-path>

# Copy a file from host to container
  docker cp <host-path> <container-name>:<container-path>

Volumes

# List volumes
  docker volume ls

# Create a volume
  docker volume create <volume-name>

# Inspect a volume
  docker volume inspect <volume-name>

# Remove a volume
  docker volume rm <volume-name>

# Remove all unused volumes
  docker volume prune

Network

# List networks
  docker network ls

# Create a network
  docker network create <network-name>

# Inspect a network
  docker network inspect <network-name>

# Connect a running container to a network
  docker network connect <network-name> <container-name>

# Disconnect a container from a network
  docker network disconnect <network-name> <container-name>

# Remove a network
  docker network rm <network-name>

# Remove all unused networks
  docker network prune

System

# Show docker disk usage
  docker system df

# Remove all unused containers, images, networks, and build cache
  docker system prune

# Remove all unused containers, images (including unused, not just dangling), networks, and volumes
  docker system prune -a --volumes

# Show docker version info
  docker version

# Show system-wide docker info
  docker info

Docker Compose

# Start services defined in docker-compose.yml (detached)
  docker compose up -d

# Stop and remove services, networks
  docker compose down

# Rebuild images before starting
  docker compose up -d --build

# View logs for all services
  docker compose logs -f

# List running services
  docker compose ps

# Execute a command in a running service
  docker compose exec <service-name> /bin/bash

# Stop services without removing them
  docker compose stop