Skip to content

CLI Reference

This is a comprehensive reference for the Docker CLI (docker) and Docker Compose CLI (docker compose). Commands are organized by category for quick lookup.

Docker CLI Syntax

bash
docker [global-options] command [subcommand] [options] [arguments]

Global Options

OptionShortDescription
--configLocation of client config files
--context-cContext to use
--debug-DEnable debug mode
--host-HDaemon socket to connect to
--log-level-lLogging level (debug, info, warn, error, fatal)
--tlsUse TLS
--tlscacertTrust certs signed by this CA
--tlscertPath to TLS certificate
--tlskeyPath to TLS key
--version-vPrint version information

Container Commands

docker run

bash
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OptionShortDescriptionExample
--detach-dRun in background-d
--interactive-iKeep STDIN open-i
--tty-tAllocate pseudo-TTY-t
--nameContainer name--name web
--rmAuto-remove on exit--rm
--publish-pPort mapping-p 8080:80
--volume-vVolume mount-v data:/app
--mountMount specification--mount type=bind,src=.,dst=/app
--env-eEnvironment variable-e NODE_ENV=prod
--env-fileEnv file--env-file .env
--networkNetwork--network my-net
--workdir-wWorking directory-w /app
--user-uUser-u 1000:1000
--memory-mMemory limit-m 512m
--cpusCPU limit--cpus 1.5
--restartRestart policy--restart unless-stopped
--platformPlatform--platform linux/amd64
--read-onlyRead-only root FS--read-only
--privilegedExtended privileges--privileged
--cap-addAdd capability--cap-add NET_BIND_SERVICE
--cap-dropDrop capability--cap-drop ALL
--security-optSecurity option--security-opt no-new-privileges
--tmpfstmpfs mount--tmpfs /tmp
--dnsCustom DNS--dns 8.8.8.8
--hostname-hContainer hostname-h myhost
--add-hostCustom host entry--add-host host:IP
--initUse init process--init
--pidPID namespace--pid host
--ipcIPC namespace--ipc host
--log-driverLogging driver--log-driver json-file
--label-lContainer label-l env=prod
--entrypointOverride entrypoint--entrypoint /bin/sh
--gpusGPU access--gpus all
--deviceHost device access--device /dev/sda:/dev/xvdc
--ulimitSet ulimits--ulimit nofile=1024:2048
--pids-limitPID limit--pids-limit 100
--stop-signalStop signal--stop-signal SIGTERM
--stop-timeoutStop timeout--stop-timeout 30

Common Run Patterns

bash
# Interactive container
docker run -it --rm ubuntu:22.04 /bin/bash

# Background web server
docker run -d --name nginx -p 80:80 nginx:latest

# Development with live reload
docker run -d -p 3000:3000 -v $(pwd):/app -w /app node:20 npm run dev

# Database with persistent storage
docker run -d --name db -v db-data:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=secret postgres:16

# Secure production container
docker run -d --name app \
  --read-only --tmpfs /tmp \
  --cap-drop ALL --cap-add NET_BIND_SERVICE \
  --security-opt no-new-privileges \
  --memory 512m --cpus 1.0 \
  --restart unless-stopped \
  -u 1000:1000 -p 3000:3000 \
  my-app:1.0

docker container

bash
docker container ls [OPTIONS]           # List containers (alias: docker ps)
docker container create [OPTIONS] IMAGE # Create a container
docker container start CONTAINER        # Start a container
docker container stop CONTAINER         # Stop a container
docker container restart CONTAINER      # Restart a container
docker container rm CONTAINER           # Remove a container
docker container pause CONTAINER        # Pause a container
docker container unpause CONTAINER      # Unpause a container
docker container kill CONTAINER         # Kill a container
docker container logs CONTAINER         # View logs
docker container inspect CONTAINER      # Inspect details
docker container exec CONTAINER CMD     # Execute command
docker container cp SRC DST             # Copy files
docker container stats [CONTAINER]      # Resource usage
docker container top CONTAINER          # Running processes
docker container port CONTAINER         # Port mappings
docker container diff CONTAINER         # Filesystem changes
docker container wait CONTAINER         # Wait for exit
docker container rename OLD NEW         # Rename a container
docker container update CONTAINER       # Update resource limits
docker container attach CONTAINER       # Attach to STDIN/STDOUT
docker container commit CONTAINER IMAGE # Create image from container
docker container export CONTAINER       # Export filesystem as tar
docker container prune                  # Remove stopped containers

docker exec

bash
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OptionShortDescription
--interactive-iKeep STDIN open
--tty-tAllocate pseudo-TTY
--detach-dRun in background
--env-eSet environment variable
--user-uRun as user
--workdir-wWorking directory
--privilegedGive extended privileges
bash
# Interactive shell
docker exec -it my-container /bin/bash
docker exec -it my-container /bin/sh

# Run as root
docker exec -u root my-container apt-get update

# Run command with env var
docker exec -e DEBUG=1 my-container npm test

# Run in specific directory
docker exec -w /app my-container ls -la

docker logs

bash
docker logs [OPTIONS] CONTAINER
OptionShortDescription
--follow-fFollow log output (stream)
--tail-nNumber of lines from end
--sinceShow logs since timestamp
--untilShow logs before timestamp
--timestamps-tShow timestamps
--detailsShow extra details
bash
docker logs my-container                  # All logs
docker logs -f my-container               # Stream logs
docker logs --tail 100 my-container       # Last 100 lines
docker logs --since 2h my-container       # Last 2 hours
docker logs --since "2025-01-01" my-app   # Since date
docker logs -f --tail 0 my-container      # Only new logs
docker logs -t my-container               # With timestamps

Image Commands

bash
docker image ls [OPTIONS]                # List images
docker image pull IMAGE[:TAG]            # Pull an image
docker image push IMAGE[:TAG]            # Push an image
docker image build [OPTIONS] PATH        # Build an image
docker image tag SOURCE TARGET           # Tag an image
docker image rm IMAGE                    # Remove an image
docker image inspect IMAGE               # Inspect details
docker image history IMAGE               # Show layer history
docker image save -o FILE IMAGE          # Save to tar
docker image load -i FILE                # Load from tar
docker image prune [OPTIONS]             # Remove unused images
docker image import FILE [REPO[:TAG]]    # Import from tar
bash
# Common image operations
docker images                             # List all local images
docker pull nginx:1.25                    # Pull specific version
docker build -t my-app:1.0 .             # Build from Dockerfile
docker tag my-app:1.0 registry/app:1.0   # Tag for registry
docker push registry/app:1.0             # Push to registry
docker rmi my-app:1.0                    # Remove image
docker image prune -a                    # Remove all unused
docker save my-app:1.0 > app.tar         # Export to file
docker load < app.tar                    # Import from file
docker history my-app:1.0                # View layers

Volume Commands

bash
docker volume create [OPTIONS] [NAME]    # Create a volume
docker volume ls [OPTIONS]               # List volumes
docker volume inspect NAME               # Inspect a volume
docker volume rm NAME                    # Remove a volume
docker volume prune [OPTIONS]            # Remove unused volumes

Network Commands

bash
docker network create [OPTIONS] NAME     # Create a network
docker network ls [OPTIONS]              # List networks
docker network inspect NAME              # Inspect a network
docker network connect NET CONTAINER     # Connect container
docker network disconnect NET CONTAINER  # Disconnect container
docker network rm NAME                   # Remove a network
docker network prune [OPTIONS]           # Remove unused networks

System Commands

bash
docker system info                       # System information
docker system df                         # Disk usage
docker system df -v                      # Verbose disk usage
docker system prune                      # Remove unused data
docker system prune -a --volumes         # Remove everything unused
docker system events                     # Real-time events
docker version                           # Version information
docker info                              # System-wide info

Docker Buildx Commands

bash
docker buildx build [OPTIONS] PATH       # Build with BuildKit
docker buildx create [OPTIONS]           # Create builder instance
docker buildx use NAME                   # Switch builder
docker buildx inspect [NAME]             # Inspect builder
docker buildx ls                         # List builders
docker buildx rm NAME                    # Remove builder
docker buildx prune                      # Remove build cache
docker buildx du                         # Disk usage
docker buildx imagetools inspect IMAGE   # Inspect multi-platform manifest
docker buildx imagetools create          # Create/update manifest
bash
# Multi-platform build
docker buildx build --platform linux/amd64,linux/arm64 -t app:1.0 --push .

# Build with cache
docker buildx build --cache-from type=gha --cache-to type=gha,mode=max -t app:1.0 .

Docker Compose Commands

bash
docker compose up [OPTIONS] [SERVICE]    # Create and start services
docker compose down [OPTIONS]            # Stop and remove services
docker compose ps [OPTIONS]              # List services
docker compose logs [OPTIONS] [SERVICE]  # View logs
docker compose build [OPTIONS] [SERVICE] # Build services
docker compose pull [SERVICE]            # Pull images
docker compose push [SERVICE]            # Push images
docker compose restart [SERVICE]         # Restart services
docker compose stop [SERVICE]            # Stop services
docker compose start [SERVICE]           # Start services
docker compose pause [SERVICE]           # Pause services
docker compose unpause [SERVICE]         # Unpause services
docker compose exec SERVICE CMD          # Execute in service
docker compose run SERVICE CMD           # One-off command
docker compose cp SRC DST               # Copy files
docker compose top [SERVICE]             # Running processes
docker compose config                    # Validate and view config
docker compose events [SERVICE]          # Service events
docker compose port SERVICE PORT         # Port mapping
docker compose images [SERVICE]          # List images
docker compose version                   # Compose version
docker compose kill [SERVICE]            # Kill services
docker compose create [SERVICE]          # Create services
docker compose rm [SERVICE]              # Remove stopped services

Compose Up Options

OptionDescription
-d, --detachDetached mode
--buildBuild images before starting
--force-recreateRecreate even if unchanged
--no-depsDon't start dependencies
--no-buildDon't build images
--remove-orphansRemove orphaned containers
--scale SERVICE=NScale to N instances
--waitWait for services to be healthy
--timeout NTimeout in seconds

Compose Down Options

OptionDescription
-v, --volumesRemove named volumes
--rmi allRemove all images
--rmi localRemove only locally built images
--remove-orphansRemove orphaned containers
-t, --timeoutTimeout in seconds

Docker Swarm Commands

bash
docker swarm init [OPTIONS]              # Initialize swarm
docker swarm join [OPTIONS] HOST:PORT    # Join a swarm
docker swarm leave [OPTIONS]             # Leave the swarm
docker swarm update [OPTIONS]            # Update swarm
docker swarm join-token [worker|manager] # Manage tokens
docker swarm unlock                      # Unlock the swarm
docker swarm unlock-key                  # Manage unlock key

docker node ls                           # List nodes
docker node inspect NODE                 # Inspect node
docker node update [OPTIONS] NODE        # Update node
docker node rm NODE                      # Remove node
docker node promote NODE                 # Promote to manager
docker node demote NODE                  # Demote to worker

docker service create [OPTIONS] IMAGE    # Create a service
docker service ls                        # List services
docker service ps SERVICE                # List service tasks
docker service inspect SERVICE           # Inspect service
docker service update [OPTIONS] SERVICE  # Update service
docker service scale SERVICE=N           # Scale a service
docker service rollback SERVICE          # Rollback service
docker service rm SERVICE                # Remove service
docker service logs SERVICE              # View service logs

docker stack deploy -c FILE NAME         # Deploy a stack
docker stack ls                          # List stacks
docker stack services NAME               # List stack services
docker stack ps NAME                     # List stack tasks
docker stack rm NAME                     # Remove a stack

docker secret create NAME FILE           # Create a secret
docker secret ls                         # List secrets
docker secret inspect NAME               # Inspect secret
docker secret rm NAME                    # Remove a secret

docker config create NAME FILE           # Create a config
docker config ls                         # List configs
docker config inspect NAME               # Inspect config
docker config rm NAME                    # Remove a config

Quick Reference

TaskCommand
Run a containerdocker run -d -p 80:80 --name web nginx
Stop a containerdocker stop web
Remove a containerdocker rm web
View logsdocker logs -f web
Shell into containerdocker exec -it web sh
Build an imagedocker build -t app:1.0 .
Push an imagedocker push user/app:1.0
Start Compose stackdocker compose up -d
Stop Compose stackdocker compose down
View disk usagedocker system df
Clean everythingdocker system prune -a --volumes

Next Steps

基于 MIT 许可发布