| name | docker-cli |
| description | Use the Docker CLI to build images, run containers, manage volumes, networks, and use Docker Compose for multi-container applications. |
Docker CLI
Container runtime and management tool. Build images, run containers, manage networks, volumes, and orchestrate with Compose.
Common Commands
Images
docker build -t my-app:latest .
docker build -t my-app:latest -f Dockerfile.prod .
docker images
docker image prune -f
docker pull nginx:latest
docker push registry.example.com/my-app:latest
docker tag my-app:latest registry.example.com/my-app:v1
Containers
docker run -d --name my-app -p 3000:3000 my-app:latest
docker run -it --rm ubuntu:latest bash
docker run -d -v $(pwd):/app -w /app node:20 npm start
docker ps
docker ps -a
docker logs my-app --follow --tail 50
docker exec -it my-app bash
docker stop my-app
docker rm my-app
docker inspect my-app
Docker Compose
docker compose up -d
docker compose up -d --build
docker compose down
docker compose logs -f service-name
docker compose ps
docker compose exec service-name bash
docker compose pull
Volumes and Networks
docker volume ls
docker volume create my-data
docker network ls
docker network create my-network
System
docker system df
docker system prune -f
docker stats
Agent Best Practices
- Use
-d (detach) for background containers, --rm for temporary ones
- Use
docker compose over individual docker run for multi-service apps
- Always tag images with specific versions, not just
latest
- Use
docker logs --tail 50 to limit log output
- Use
docker inspect --format '{{.State.Status}}' for specific fields
- Use
docker compose --profile test up for conditional services
- Pipe
docker ps --format json for structured output
Example Workflows
Build and run a dev container
docker build -t my-app:dev .
docker run -d --name my-app -p 3000:3000 -v $(pwd)/src:/app/src my-app:dev
docker logs my-app --follow
Clean up all stopped containers and unused images
docker system prune -af --volumes