Docker 常用命令速查手册

> 整理时间:2026-03-14 | 标签:Docker, 容器, DevOps, 运维

一、容器操作

运行容器


# 基本运行
docker run -d -p 8080:80 --name myapp nginx

# 常用参数说明
# -d          后台运行(detached mode)
# -p 8080:80  端口映射(宿主机:容器)
# --name      指定容器名称
# -e          设置环境变量
# --rm        容器停止后自动删除
# -v          挂载数据卷

# 带环境变量和数据卷
docker run -d \
  -p 5432:5432 \
  --name postgres \
  -e POSTGRES_PASSWORD=secret \
  -v pgdata:/var/lib/postgresql/data \
  postgres:16

查看容器


# 查看运行中的容器
docker ps

# 查看所有容器(含已停止)
docker ps -a

# 只显示容器 ID
docker ps -q

启停管理


docker start myapp       # 启动
docker stop myapp        # 优雅停止(SIGTERM)
docker restart myapp     # 重启
docker kill myapp        # 强制停止(SIGKILL)

删除容器


docker rm myapp          # 删除已停止的容器
docker rm -f myapp       # 强制删除(运行中也可以)

# 删除所有停止的容器
docker container prune

进入容器


docker exec -it myapp bash    # 进入交互式 shell
docker exec -it myapp sh      # 没有 bash 时用 sh

# 以 root 身份进入
docker exec -it -u root myapp bash

# 直接执行单条命令
docker exec myapp cat /etc/hosts

二、镜像操作


# 拉取镜像
docker pull nginx:latest
docker pull nginx:1.25

# 查看本地镜像
docker images
docker images -a          # 包含中间层

# 删除镜像
docker rmi nginx:latest
docker rmi -f nginx       # 强制删除

# 构建镜像
docker build -t myapp:1.0 .
docker build -t myapp:1.0 -f Dockerfile.prod .

# 打标签
docker tag myapp:1.0 registry.example.com/myapp:1.0

# 推送到 Registry
docker push registry.example.com/myapp:1.0

# 查看镜像构建历史
docker history myapp:1.0

# 删除未使用的镜像
docker image prune
docker image prune -a     # 删除所有未被引用的镜像

三、日志 & 状态监控


# 查看日志
docker logs myapp
docker logs -f myapp             # 实时跟踪(follow)
docker logs --tail 100 myapp     # 最后 100 行
docker logs --since 1h myapp     # 最近 1 小时
docker logs -t myapp             # 带时间戳

# 查看资源占用(CPU/内存/网络/IO)
docker stats
docker stats myapp               # 只看指定容器
docker stats --no-stream         # 只输出一次,不刷新

# 查看容器详细信息(JSON 格式)
docker inspect myapp

# 查看容器内进程
docker top myapp

# 查看端口映射
docker port myapp

四、Docker Compose


# 启动所有服务(后台运行)
docker compose up -d

# 停止并删除容器、网络
docker compose down

# 停止并删除(含数据卷)
docker compose down -v

# 重启
docker compose restart

# 只重启某个服务
docker compose restart api

# 查看日志
docker compose logs
docker compose logs -f
docker compose logs -f api       # 只看某个服务

# 查看状态
docker compose ps

# 重新构建镜像
docker compose build
docker compose build --no-cache  # 不用缓存

# 构建并启动
docker compose up -d --build

# 进入某个服务容器
docker compose exec api bash

# 运行一次性命令
docker compose run --rm api python migrate.py

五、数据卷(Volume)


# 创建 volume
docker volume create mydata

# 查看 volumes
docker volume ls
docker volume inspect mydata

# 删除 volume
docker volume rm mydata

# 删除未使用的 volumes
docker volume prune

# 挂载方式一:目录绑定(Bind Mount)
docker run -v /host/path:/container/path nginx

# 挂载方式二:命名卷(推荐)
docker run -v mydata:/data nginx

# 只读挂载
docker run -v /host/config:/config:ro nginx

六、网络


# 查看网络列表
docker network ls

# 创建自定义网络
docker network create mynet

# 运行时指定网络
docker run --network mynet nginx

# 查看网络详情
docker network inspect mynet

# 将容器加入网络
docker network connect mynet myapp

# 删除网络
docker network rm mynet

七、清理(释放磁盘空间)


# 删除所有停止的容器
docker container prune

# 删除未使用的镜像
docker image prune -a

# 删除未使用的 volumes
docker volume prune

# 删除未使用的网络
docker network prune

# 一键清理所有无用资源(最彻底)
docker system prune -a --volumes

# 查看 Docker 占用磁盘情况
docker system df

八、文件复制


# 从容器复制到宿主机
docker cp myapp:/app/logs/error.log ./error.log

# 从宿主机复制到容器
docker cp ./config.yaml myapp:/app/config.yaml

九、常用 Dockerfile 片段


# 多阶段构建(推荐,减小镜像体积)
FROM golang:1.22 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .

FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]

十、高频命令速记

需求命令
启动项目`docker compose up -d`
查看日志`docker compose logs -f`
进入容器`docker exec -it bash`
查看状态`docker ps`
重启服务`docker compose restart `
清理空间`docker system prune -a`
查看资源`docker stats`

参考:Docker 官方文档 docs.docker.com | Docker Compose v2 文档