用 docker stats 可实时查看容器内存占比和CPU使用率:默认每秒刷新所有运行容器,MEM % 列显示内存使用率;支持指定容器名、ID或多个容器监控;加 --no-stream 获取单次快照,配合 --format 可定制输出格式;用 $(docker ps --format='{{.Names}}') 替换ID为容器名提升可读性。

在Mac上排查Docker容器吃内存或CPU过高问题时,需要快速看到每个运行中容器的实时内存占比、CPU使用率等指标,而不是翻日志或进容器查进程。
用 docker stats 查所有运行容器的实时资源
打开终端,直接输入命令:
docker stats
这会立即开始每秒刷新一次所有正在运行容器的资源占用,重点看 MEM % 这一列——它就是内存使用率百分比。注意:该命令默认只显示运行中的容器,已停止的容器不会出现在列表里。
按 Ctrl + C 可随时退出实时刷新模式。
只看指定容器的实时 stats(精准定位)
当你已经知道容器名或ID,比如叫 web-app,就别让屏幕刷一堆无关容器了:
方法一:用容器名
docker stats web-app
方法二:用容器ID前几位(如 7c3e162bef49)
docker stats 7c3e162
方法三:同时监控多个关键容器(用空格分隔)
docker stats api-db cache-redis worker-queue
【注意】容器名必须是 docker ps 输出里 NAME 列显示的名称,不能是镜像名或自定义别名。
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
一次性快照:不刷新,只输出当前值
有些场景下你只需要抓一个瞬间的数据,比如写监控脚本、发告警、或截图给同事看:
第一步:执行带 --no-stream 的命令
docker stats --no-stream
第二步:如果只想看特定容器,追加容器名
docker stats --no-stream nginx postgres redis
第三步:若需更简洁的输出(比如只保留容器名和内存百分比),用 --format 定制
docker stats --no-stream --format "table {{.Name}}\t{{.MemPerc}}"
这行命令会输出纯表格,第一列是容器名,第二列是 MEM % 值,中间用制表符分隔,方便复制进 Excel 或做后续处理。
让输出更易读:用容器名代替 ID
默认 docker stats 第一列显示的是短ID(如 7c3e162b),不好识别。可以用以下命令自动把所有运行容器的名称塞进去:
docker stats $(docker ps --format='{{.Names}}')
这条命令会先用 docker ps --format 提取出所有容器的名称,再作为参数传给 docker stats,最终列表第一列就是你起的名字,比如 mysql-main、frontend-prod,一眼能对上号。
如果某容器启动时没指定 --name,Docker 会自动生成一个随机名字(如 eloquent_mirzakhani),它也会被正确显示出来。

















