Docker Commands Cheatsheet

Essential commands for Docker container management

Quick Reference

Docker is a platform for developing, shipping, and running applications in containers.

1 Container Management

docker run [options] image [command]
Create and start a new container from an image
docker run -it ubuntu bash # Interactive terminal
docker run -d -p 8080:80 nginx # Detached with port mapping
docker run --name myapp -v /data:/app/data myimage
docker start/stop/restart container
Start, stop, or restart a container
docker start my_container
docker stop my_container
docker restart my_container
docker ps [options]
List containers
docker ps # Running containers
docker ps -a # All containers
docker ps -q # Only container IDs
docker exec [options] container command
Execute a command in a running container
docker exec -it my_container bash # Interactive shell
docker exec my_container ls /app
docker logs [options] container
View container logs
docker logs my_container
docker logs -f my_container # Follow logs
docker logs --tail 100 my_container # Last 100 lines
docker rm [options] container
Remove one or more containers
docker rm my_container
docker rm -f my_container # Force remove running container
docker rm $(docker ps -aq) # Remove all containers
docker inspect container
Display detailed information about a container
docker inspect my_container
docker inspect --format='{{.NetworkSettings.IPAddress}}' my_container
docker stats [container]
Display a live stream of container resource usage
docker stats # All running containers
docker stats my_container1 my_container2
docker cp [options] container:src_path dest_path
Copy files/folders between a container and the local filesystem
docker cp my_container:/app/logs ./logs
docker cp config.json my_container:/app/config.json
docker commit [options] container [repository[:tag]]
Create a new image from a container's changes
docker commit my_container my_image:latest
docker commit -m "Added config" -a "John Doe" my_container my_image:v2
docker pause/unpause container
Pause or unpause processes in a container
docker pause my_container
docker unpause my_container
docker rename old_name new_name
Rename a container
docker rename old_container new_container

2 Image Management

docker images [options]
List images
docker images
docker images -a # Show all images
docker images --filter "dangling=true" # Dangling images
docker pull [options] image[:tag]
Pull an image from a registry
docker pull ubuntu
docker pull nginx:1.19
docker pull myregistry.local:5000/myimage
docker push [options] image[:tag]
Push an image to a registry
docker push myimage:latest
docker push myregistry.local:5000/myimage:v1
docker build [options] path
Build an image from a Dockerfile
docker build -t myimage .
docker build -t myimage:v1 -f Dockerfile.prod .
docker build --no-cache -t myimage .
docker rmi [options] image
Remove one or more images
docker rmi myimage:old
docker rmi $(docker images -q) # Remove all images
docker rmi -f myimage # Force remove
docker tag source[:tag] target[:tag]
Create a tag for an image
docker tag myimage:latest myimage:v1
docker tag myimage myregistry.local:5000/myimage
docker history [options] image
Show the history of an image
docker history myimage
docker history --no-trunc myimage # Don't truncate output
docker save/load [options]
Save/Load an image to/from a tar archive
docker save -o myimage.tar myimage
docker load -i myimage.tar

3 Networking

docker network ls
List networks
docker network ls
docker network create [options] network
Create a network
docker network create my_network
docker network create --driver bridge --subnet 192.168.0.0/16 my_network
docker network connect/disconnect [options] network container
Connect/disconnect a container to/from a network
docker network connect my_network my_container
docker network disconnect my_network my_container
docker network inspect [options] network
Display detailed network information
docker network inspect my_network
docker network rm network
Remove one or more networks
docker network rm my_network
docker network rm $(docker network ls -q) # Remove all unused networks
docker network prune [options]
Remove all unused networks
docker network prune
docker network prune --force

4 Volumes

docker volume ls
List volumes
docker volume ls
docker volume create [options] volume
Create a volume
docker volume create my_volume
docker volume create --driver local --opt type=nfs my_volume
docker volume inspect [options] volume
Display detailed volume information
docker volume inspect my_volume
docker volume rm volume
Remove one or more volumes
docker volume rm my_volume
docker volume rm $(docker volume ls -q) # Remove all unused volumes
docker volume prune [options]
Remove all unused volumes
docker volume prune
docker volume prune --force

5 Docker Compose

docker-compose up [options]
Create and start containers
docker-compose up
docker-compose up -d # Detached mode
docker-compose up --build # Build images before starting
docker-compose down [options]
Stop and remove containers, networks
docker-compose down
docker-compose down -v # Also remove volumes
docker-compose down --rmi all # Also remove images
docker-compose build [options] [service...]
Build or rebuild services
docker-compose build
docker-compose build --no-cache
docker-compose build myservice
docker-compose ps [options] [service...]
List containers
docker-compose ps
docker-compose ps -a # Show all containers
docker-compose logs [options] [service...]
View output from containers
docker-compose logs
docker-compose logs -f # Follow log output
docker-compose logs myservice
docker-compose exec [options] service command
Execute a command in a running container
docker-compose exec myservice bash
docker-compose exec -T myservice ls # Disable pseudo-tty
docker-compose config [options]
Validate and view the compose file
docker-compose config
docker-compose config --services # List services

6 System & Info

docker info
Display system-wide information
docker info
docker version
Show the Docker version information
docker version
docker system df
Show docker disk usage
docker system df
docker system df -v # Verbose output
docker system prune [options]
Remove unused data
docker system prune
docker system prune -a # Remove all unused images
docker system prune --volumes # Also prune volumes
docker events [options]
Get real time events from the server
docker events
docker events --filter 'event=start'
docker events --since '2023-01-01'
docker login/logout [options] [server]
Log in/out to a Docker registry
docker login
docker login myregistry.local:5000
docker logout