作为开发者,我们每天都在和Docker打交道,但很多人只停留在了docker run
、docker ps
这些基础命令上。其实Docker CLI有许多强大的高级用法,掌握后能让你的工作效率大幅提升。感兴趣的同学可以Mark一下。
1. 格式化输出 - 精确获取你需要的信息
不要再从一大堆输出中肉眼查找信息了,使用--format
可以精确提取你需要的数据:
# 只获取所有容器的ID和名称
docker ps --format "{{.ID}}: {{.Names}}"
# 以表格形式展示镜像信息
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Size}}"
# 提取容器IP地址
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name
支持Go模板语法,可以构建任意格式的输出,轻松集成到脚本中。
2. 过滤器 - 快速定位目标对象
面对几十上百个容器或镜像,如何快速找到你要的那个?使用--filter
:
# 查找所有退出的容器
docker ps -a --filter "status=exited"
# 查找特定标签的镜像
docker images --filter "label=environment=production"
# 查找悬空镜像(没有标签的镜像)
docker images --filter "dangling=true"
# 组合多个过滤条件
docker ps --filter "status=running" --filter "name=web"
支持多种过滤条件组合,比手动grep更高效准确。
3. 批量操作 - 一次处理多个对象
不要再一个个手动操作了,这些命令可以帮你批量处理:
# 停止所有运行中的容器
docker stop $(docker ps -q)
# 删除所有已停止的容器
docker container prune
# 删除所有未使用的镜像
docker image prune -a
# 一键清理所有未使用的对象(包括网络、数据卷等)
docker system prune -a
系统维护和清理变得轻松高效,一行命令搞定。
4. 上下文管理 - 无缝切换多环境
需要同时管理多个Docker环境?使用上下文功能:
# 创建新的上下文连接到远程Docker主机
docker context create remote-server --docker "host=ssh://user@remote-server"
# 列出所有上下文
docker context ls
# 切换上下文
docker context use remote-server
# 在特定上下文中执行命令
docker --context=remote-server ps
本地开发、测试环境、生产环境无缝切换,不需要修改环境变量。
5. 实时日志跟踪 - 监控容器状态
调试容器问题?使用这些日志技巧:
# 实时跟踪容器日志,显示时间戳
docker logs -f --timestamps container_name
# 只查看最近30分钟的日志
docker logs --since 30m container_name
# 只显示最后10行日志
docker logs --tail 10 container_name
# 组合使用
docker logs -f --since 5m --tail 20 container_name
精确定位问题发生时间,快速排查故障原因。
6. 容器统计信息 - 实时监控资源使用
想知道哪个容器吃掉了你的资源?使用stats命令:
# 查看所有容器资源使用情况
docker stats
# 只监控特定容器
docker stats container1 container2
# 以不同单位显示内存使用
docker stats --format "{{.Name}}: {{.MemUsage}}"
# 一次性输出当前状态
docker stats --no-stream
实时掌握CPU、内存、网络IO使用情况,及时发现性能瓶颈。
7. 镜像历史 - 分析镜像构成
想知道一个镜像是如何构建的?查看其历史:
# 查看镜像构建历史
docker history image_name
# 显示完整命令(不截断)
docker history --no-trunc image_name
# 以人类友好格式显示大小
docker history --human image_name
了解每一层的大小和构建命令,找出膨胀原因。
8. 事件流 - 实时监控Docker活动
想知道Docker后台发生了什么?监听事件流:
# 实时查看所有Docker事件
docker events
# 按事件类型过滤
docker events --filter 'type=container'
# 按事件动作过滤
docker events --filter 'event=start'
# 指定时间范围
docker events --since '2023-01-01' --until '2023-01-02'
实时监控容器启停、镜像构建等活动,适合调试和审计。
9. 磁盘使用情况 - 找出空间占用
Docker占用太多磁盘空间?使用这个命令找出原因:
# 查看Docker磁盘使用详情
docker system df
# 查看详细信息,包括每个镜像和容器
docker system df -v
精确了解镜像、容器、数据卷占用情况,有针对性地清理。
10. 实验性功能 - 抢先体验新特性
想尝试最新功能?启用实验性特性:
# 查看当前可用的实验性功能
docker version -f '{{.Server.Experimental}}'
# 在配置中启用实验性功能
echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

優(yōu)網(wǎng)科技秉承"專業(yè)團(tuán)隊(duì)、品質(zhì)服務(wù)" 的經(jīng)營(yíng)理念,誠信務(wù)實(shí)的服務(wù)了近萬家客戶,成為眾多世界500強(qiáng)、集團(tuán)和上市公司的長(zhǎng)期合作伙伴!
優(yōu)網(wǎng)科技成立于2001年,擅長(zhǎng)網(wǎng)站建設(shè)、網(wǎng)站與各類業(yè)務(wù)系統(tǒng)深度整合,致力于提供完善的企業(yè)互聯(lián)網(wǎng)解決方案。優(yōu)網(wǎng)科技提供PC端網(wǎng)站建設(shè)(品牌展示型、官方門戶型、營(yíng)銷商務(wù)型、電子商務(wù)型、信息門戶型、微信小程序定制開發(fā)、移動(dòng)端應(yīng)用(手機(jī)站、APP開發(fā))、微信定制開發(fā)(微信官網(wǎng)、微信商城、企業(yè)微信)等一系列互聯(lián)網(wǎng)應(yīng)用服務(wù)。