直接用 docker stats 可快速生成容器性能汇总表,默认实时输出所有运行中容器的cpu%、内存用量/限制、网络与磁盘i/o等关键指标,并支持快照输出、自定义格式、排序及与其他命令组合分析。

直接用 docker stats 就能快速生成容器性能汇总表,它默认以表格形式实时输出所有运行中容器的关键资源指标。
基础用法:一键生成汇总表
执行以下命令即可获得动态刷新的性能汇总表:
-
docker stats—— 查看所有运行中容器的实时资源使用(CPU%、内存用量/限制、网络与磁盘I/O) -
docker stats --no-stream container1 container2—— 仅输出一次快照,适合脚本调用或日志记录 -
docker stats --format "table{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"—— 自定义列顺序和内容,生成更简洁的汇总视图
重点关注的性能字段含义
汇总表中每列都对应一个关键维度,理解它们才能准确判断瓶颈:
- CPU %:容器自启动以来占用主机总CPU时间的百分比,持续高于70%可能影响响应
-
MEM USAGE / LIMIT:当前内存使用量与硬性限制值,例如
124MiB / 512MiB;若未设限制,LIMIT 显示为极大值,此时 MEM % 会极低,参考价值下降 - MEM %:基于 memory.usage_in_bytes / memory.limit_in_bytes 计算得出,反映内存压力程度,接近100%时OOM风险上升
- NET I/O:累计接收与发送的网络数据量,单位为KB/MB,突增可能意味着异常流量或服务拉取行为
- BLOCK I/O:磁盘读写总量,高频大块读写容易拖慢整体I/O性能
配合其他命令增强分析能力
单纯看汇总表有时不够,可组合使用提升定位效率:
- 先用
docker ps确认容器名或ID,避免统计目标错误 - 对高负载容器,追加
docker top <container></container>查看内部具体进程,确认是哪个应用线程在吃资源 - 怀疑内存异常时,运行
docker exec -it <container> cat /sys/fs/cgroup/memory/memory.stat</container>查看 RSS、cache 等细分构成 - 需要长期趋势?用
curl --unix-socket /var/run/docker.sock http://localhost/v1.41/containers/<name>/stats?stream=false</name>获取单次JSON数据,导入监控系统
小技巧:让汇总表更实用
几个提升可读性和效率的操作建议:
- 加
--all参数可包含已退出但未删除的容器(显示为0.00%等静止状态) - 终端宽度不足时,表格自动换行影响阅读,建议全屏或用
--format缩减列数 - 想按CPU或内存排序?目前
docker stats不支持内置排序,可用docker stats --no-stream | sort -k3 -nr(按第三列CPU降序)临时处理 - 容器名太长遮挡数据?启动时用
--name指定简短易识别的名称,便于汇总表一眼定位











