docker stats 通过 --format 选项配合 go 模板语法实现格式化输出,支持 table 表头渲染或纯文本,常用字段包括 {{.name}}、{{.cpuperc}}、{{.memusage}} 等,可结合 --no-stream、sort 等进行自动化处理。

用 docker stats 输出格式化数据,核心是使用 --format 选项配合 Go 模板语法,按需筛选和排列字段,跳过默认冗长输出。
基础格式化写法
默认表格输出包含全部列,但多数场景只需关键几项。例如只看容器名、CPU 和内存使用:
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"-
\t表示制表符分隔,保持对齐;table前缀确保表头自动渲染 - 若省略
table,输出为纯文本,无列头和边框
常用字段对照表
模板中可直接调用的字段(大小写敏感):
- {{.Name}}:容器名称(比默认 ID 更易读)
-
{{.CPUPerc}}:CPU 使用率,如
0.12% -
{{.MemUsage}}:内存用量与上限,如
12.4 MiB / 2 GiB - {{.MemPerc}}:内存使用百分比
-
{{.NetIO}}:网络收发总量,如
1.2 MB / 648 B - {{.BlockIO}}:磁盘读写总量
- {{.PIDs}}:当前进程数
进阶组合技巧
支持条件判断、JSON 输出、管道处理等,提升实用性:
- 输出 JSON 格式便于脚本解析:
docker stats --no-stream --format "{{json .}}" nginx - 只显示运行中的容器(默认行为),加
-a可包含已停止容器(但其资源值为空或 0) - 配合
--no-stream获取单次快照,避免实时刷新干扰自动化流程 - 结合 shell 管道排序,例如按内存用量升序:
docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}" | sort -k2 -h
实际可用的一行命令示例
快速列出所有运行中容器的名称、CPU、内存百分比,并按内存降序排列:
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemPerc}}" | sort -k3 -hr | head -10











