Table of Contents
Overview
This chapter gives you a compact reference of the most commonly used Docker commands. It is not a place for long explanations, but a quick way to recall syntax and typical patterns as you work.
Keep this rule in mind: If you are not sure what a command does, especially if it contains rm, prune, or --force, look it up first or test it on a non‑critical system.
Getting Help
Use these when you forget command options or need a quick reminder.
docker help
docker <command> --help
docker compose --help
Working with Images
Pull an image from a registry:
docker pull <image>
docker pull <image>:<tag>
List local images:
docker images
docker image ls
Remove images:
docker rmi <image>
docker image rm <image>
docker image rm <image1> <image2>
Tag images:
docker tag <source-image>:<tag> <target-name>:<tag>
Inspect image metadata:
docker image inspect <image>
Search in Docker Hub from the CLI:
docker search <term>
Deleting an image that is used by existing containers can break those containers. Stop and remove containers first if you intend to fully clean up.
Working with Containers
Run a container from an image:
docker run <image>
docker run --name <name> <image>
docker run -d <image>
docker run -it <image> /bin/bash
List containers:
docker ps
docker ps -a
Stop and start containers:
docker stop <container>
docker start <container>
docker restart <container>
Remove containers:
docker rm <container>
docker rm <container1> <container2>
docker rm -f <container>
View details about a container:
docker inspect <container>
docker rm -f forcefully stops and removes containers. Use it carefully, especially on shared or production environments.
Logs and Debugging
View logs:
docker logs <container>
docker logs -f <container>
docker logs --tail 100 <container>
Run a command inside a running container:
docker exec -it <container> /bin/bash
docker exec -it <container> <command>
Copy files to and from containers:
docker cp <local-path> <container>:/path/in/container
docker cp <container>:/path/in/container <local-path>
Ports, Networking, and Connectivity
Run a container with port mapping:
docker run -p <host-port>:<container-port> <image>
Example:
docker run -p 8080:80 nginx
List networks:
docker network ls
Create and remove networks:
docker network create <network-name>
docker network rm <network-name>
Connect or disconnect containers to networks:
docker network connect <network> <container>
docker network disconnect <network> <container>
Inspect a network:
docker network inspect <network>
Volumes and Data
List volumes:
docker volume ls
Create a volume:
docker volume create <name>
Use a named volume:
docker run -v <volume-name>:/path/in/container <image>
Use a bind mount from the host:
docker run -v /host/path:/path/in/container <image>
Inspect a volume:
docker volume inspect <name>
Remove volumes:
docker volume rm <name>
docker volume rm <name1> <name2>
docker volume rm permanently removes the data in that volume. Check you are not deleting important data.
Building Images with Dockerfiles
Build an image from a Dockerfile:
docker build -t <image-name> .
docker build -t <image-name>:<tag> <path>
Use build arguments:
docker build --build-arg <NAME>=<value> -t <image-name> .
Show build cache usage and progress:
docker build --progress=plain -t <image-name> .
System Cleanup
Remove unused containers, networks, images, and build cache:
docker system prune
docker system prune -a
Remove unused images only:
docker image prune
Remove stopped containers only:
docker container prune
Remove unused volumes only:
docker volume prune
docker system prune -a deletes all unused images and stopped containers. Use it only when you are sure you do not need them anymore.
Resource Usage and Monitoring
Show container resource usage:
docker stats
docker stats <container>
Show running processes inside a container:
docker top <container>
Show low level information:
docker inspect <object-name-or-id>
Docker Compose Basics
Use when working with docker-compose.yml.
Start services:
docker compose up
docker compose up -d
Stop services:
docker compose down
View running services:
docker compose ps
View logs:
docker compose logs
docker compose logs -f
Rebuild and restart:
docker compose up --build
Run a one‑off command in a Compose service:
docker compose run <service> <command>
Quick Patterns to Remember
Run a temporary container and remove it when it exits:
docker run --rm <image> <command>
Map current directory into a container:
docker run -v $(pwd):/app -w /app <image> <command>
Follow a container log until it stops:
docker logs -f <container>
Restart a container on failure:
docker run --restart=on-failure <image>
When combining options, read the full command twice before pressing Enter, especially if it contains rm, prune, or -f. This simple habit can prevent accidental data loss.