Franco Lopez

Modern tech. Old-school curiosity.

Cheatsheet: Docker CLI

my notes and reference for common Docker commands, organized by task. Nothing crazy, just useful.


Run New Containers

# Run a container from an image
docker run IMAGE

# Run and name the container
docker run --name web nginx

# Map ports (host:container)
docker run -p 8080:80 nginx

# Expose all container ports
docker run -P nginx

# Run in detached mode (background)
docker run -d nginx

# Assign a custom hostname
docker run --hostname myhost nginx

# Add a custom DNS entry
docker run --add-host internal.local:10.0.0.5 nginx

# Mount a local directory into the container
docker run -v ~/site:/usr/share/nginx/html nginx

# Override entrypoint
docker run --entrypoint bash nginx

# Start with interactive shell
docker run -it ubuntu bash

Manage Containers

# Show running containers
docker ps

# Show all containers
docker ps -a

# Stop a container
docker stop CONTAINER

# Start a container
docker start CONTAINER

# Restart a container
docker restart CONTAINER

# Remove a container
docker rm CONTAINER

# Remove forcibly
docker rm -f CONTAINER

# Remove all stopped containers
docker container prune

# Rename a container
docker rename OLD_NAME NEW_NAME

Copy Files

# From container to host
docker cp web:/index.html ./index.html

# From host to container
docker cp ./file.txt web:/data/file.txt

Inspect & Logs

# Show container logs
docker logs CONTAINER

# Follow logs live
docker logs -f CONTAINER

# Container stats
docker stats

# Top processes inside container
docker top CONTAINER

# Inspect container or image metadata
docker inspect nginx

# Show changed files
docker diff CONTAINER

# Show exposed ports
docker port CONTAINER

Execute in Containers

# Run a command in a running container
docker exec CONTAINER COMMAND

# Start an interactive shell
docker exec -it CONTAINER bash

Manage Images

# List local images
docker images

# Pull an image
docker pull ubuntu:latest

# Push an image
docker push myuser/myimage:tag

# Remove an image
docker rmi IMAGE

# Remove dangling images
docker image prune

# Remove unused images
docker image prune -a

# Build image from Dockerfile
docker build -t myimage .

# Tag an image
docker tag IMAGE NEW_NAME

# Save image to tar
docker save nginx > nginx.tar

# Load image from tar
docker load -i nginx.tar

Docker Volumes

# List volumes
docker volume ls

# Create a volume
docker volume create mydata

# Inspect volume
docker volume inspect mydata

# Remove volume
docker volume rm mydata

# Remove all unused volumes
docker volume prune

Docker Networks

# List networks
docker network ls

# Create a bridge network
docker network create mynet

# Connect container to network
docker network connect mynet CONTAINER

# Disconnect container
docker network disconnect mynet CONTAINER

# Inspect network
docker network inspect mynet

System Cleanup

# Remove unused containers, networks, images (not volumes)
docker system prune

# Remove everything, including volumes
docker system prune -a --volumes

this has been handy for me as a fast reference in development or production environments.

— Franco