Docker命令大全:从基础到高阶操作指南
Docker操作命令完全指南:从基础到高阶实践
一、Docker命令体系概览
Docker命令按照功能可分为三大类:镜像操作、容器管理和系统维护。理解这些命令的层级关系对高效使用Docker至关重要:
二、镜像操作命令详解
1. 镜像生命周期管理
# 从仓库拉取镜像(支持多平台)
docker pull nginx:1.23 --platform=linux/amd64
# 构建镜像(多阶段构建示例)
docker build -t myapp:v1 -f Dockerfile .
# 给镜像打标签(用于版本管理)
docker tag myapp:v1 registry.example.com/myapp:prod
# 推送镜像到私有仓库
docker push registry.example.com/myapp:prod
# 删除本地镜像(强制删除正在使用的镜像)
docker rmi -f nginx:1.23
实践建议:
- 使用明确的版本标签而非latest
- 构建时添加
--no-cache
避免缓存问题 - 定期清理无用镜像(
docker image prune -a
)
2. 镜像查询与检查
# 列出镜像(显示摘要信息)
docker images --digests
# 查看镜像构建历史
docker history nginx:1.23
# 检查镜像元数据
docker inspect nginx:1.23 | jq '.[].Config.ExposedPorts'
# 保存/加载镜像归档文件
docker save -o nginx.tar nginx:1.23
docker load -i nginx.tar
三、容器操作命令精要
1. 容器生命周期管理
# 运行容器(带资源限制)
docker run -d --name web \
-p 8080:80 \
--memory=512m \
--cpus=1.5 \
-v /data:/var/www \
nginx:1.23
# 启停容器(批量操作)
docker stop web && docker start web
# 删除容器(清理匿名卷)
docker rm -v web
# 进入运行中容器(推荐exec方式)
docker exec -it web bash
关键参数解析:
-d
:后台守护模式-it
:交互式终端--restart=always
:自动重启策略--network=my_net
:指定自定义网络
2. 容器状态监控
# 查看容器列表(显示完整命令)
docker ps -a --no-trunc
# 实时资源监控(只显示CPU/MEM)
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
# 查看容器日志(带时间戳和尾部跟踪)
docker logs -ft --tail 100 web
# 检查容器详细信息(网络/IP等)
docker inspect web | jq '.[].NetworkSettings.Networks'
调试技巧:
- 使用
docker pause/unpause
冻结容器状态 docker diff web
查看文件系统变更docker top web
查看容器内进程
四、系统维护命令
1. 系统信息与清理
# 查看Docker系统信息(显示存储驱动等)
docker info
# 查看Docker版本(客户端和服务端)
docker version --format '{{.Server.Version}}'
# 清理无用资源(谨慎使用!)
docker system prune --volumes --all
# 查看磁盘使用详情
docker system df -v
2. 高级监控方案
# 输出容器指标到Prometheus
docker run -d --name=cadvisor \
-p 8080:8080 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
google/cadvisor:v0.47.0
生产建议:
- 设置
--log-opt max-size=10m
限制日志大小 - 使用
docker events
监听系统事件 - 结合Grafana实现可视化监控
五、命令组合实战案例
案例1:批量更新所有容器
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有已停止容器
docker rm $(docker ps -aq)
# 更新所有镜像并重新运行
docker images | grep -v REPOSITORY | awk '{print $1":"$2}' | xargs -I{} docker pull {}
案例2:容器健康检查
# 运行带健康检查的容器
docker run -d \
--name=healthcheck \
--health-cmd="curl -f http://localhost || exit 1" \
--health-interval=5s \
nginx:1.23
# 查看健康状态
docker inspect --format='{{json .State.Health}}' healthcheck
六、常见问题排查流程
通过掌握这些核心命令组合,您可以高效管理Docker全生命周期操作。建议在日常使用中:
- 善用
--help
查看命令帮助 - 使用命令补全工具提高效率
- 将常用命令封装为脚本或别名
- 定期查阅官方文档获取更新