docker stats 命令可实时监控容器资源使用情况,支持查看所有或指定容器的 CPU、内存、网络、磁盘及进程数;可通过 --no-stream 获取单次快照,--format 自定义输出格式,含 JSON 支持。

直接用 docker stats 命令就能实时监控容器的 CPU、内存、网络和磁盘资源消耗,不需要额外安装工具。
查看所有运行中容器的实时状态
在终端执行:
docker stats
命令会每秒刷新一次,显示所有正在运行容器的以下指标:
- CPU %:当前 CPU 使用率
- MEM USAGE / LIMIT:已用内存与设定上限(若未限制则显示宿主机总内存)
- MEM %:内存使用百分比
- NET I/O:累计网络收发流量
- BLOCK I/O:磁盘读写总量
- PIDS:容器内活跃进程数
按 Ctrl + C 可退出实时刷新模式。
只看指定容器,更聚焦
当线上有多个容器时,可限定目标:
docker stats nginx-app redis-cache
支持同时传入多个容器名或 ID(空格分隔),第一列将显示你输入的名称,比默认的短 ID 更易识别。
如果记不清容器名,可用管道组合快速列出所有容器名再传给 stats:
docker stats $(docker ps --format='{{.Names}}')
获取单次快照,适合脚本或日志记录
加 --no-stream 参数可禁用自动刷新,只输出当前时刻的一次性统计:
docker stats --no-stream my-db
该方式常用于定时采集、告警判断或集成进监控脚本中。
自定义输出格式,突出关键字段
用 --format 指定模板,例如只看容器名、CPU 和内存使用率:
docker stats --no-stream --format "{{.Name}}\t{{.CPUPerc}}\t{{.MemPerc}}"
常用占位符包括:{{.Name}}、{{.CPUPerc}}、{{.MemUsage}}、{{.MemPerc}}、{{.NetIO}}、{{.BlockIO}}、{{.PIDs}}。
还支持输出 JSON 格式,便于程序解析:
docker stats --no-stream --format '{{json .}}' my-app


















