☰
Docker 如何查看各个容器的内存占比?一篇实用指南
2026/9/26 5:24:19 网站建设 项目流程

前言

在日常运维或排查问题时,经常需要快速了解每个 Docker 容器当前占用了多少内存,以及占总内存的比例。今天分享最简单、最常用的方法。

1. 最推荐的方式:docker stats

直接运行:

docker stats

就会实时刷新所有正在运行容器的资源使用情况,重点关注这两列:

  • MEM USAGE / LIMIT:当前使用内存 / 容器内存上限
  • MEM %:内存使用占比(就是你最想看的)

示例输出:

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS a1b2c3d4e5f6 nginx 0.15% 12.5MiB / 7.76GiB 0.16% 1.2kB / 0B 0B / 0B 2 b2c3d4e5f6a7 redis 0.02% 8.3MiB / 7.76GiB 0.10% 0B / 0B 0B / 0B 5

按Ctrl + C退出实时刷新。

2. 只想看一次快照(不持续刷新)

docker stats --no-stream

适合脚本或偶尔查看。

3. 只看指定容器

docker stats nginx redis mysql

或者只看一个:

docker stats 容器名或ID

4. 自定义输出格式(更干净)

只显示名称、内存使用和占比:

docker stats --no-stream --format "table {{.Name}}\t{{.MemUsage}}\t{{.MemPerc}}"

输出会变成:

NAME MEM USAGE / LIMIT MEM % nginx 12.5MiB / 7.76GiB 0.16% redis 8.3MiB / 7.76GiB 0.10%

补充说明

  • 如果容器启动时没有用--memory设置限制,LIMIT 通常就是宿主机的总内存。
  • docker stats显示的是实际占用(包含 RSS 和部分缓存),比单纯看docker inspect更直观。
  • 想深入看 cgroup 内存明细,可以进容器查看:
# cgroup v1 docker exec 容器名 cat /sys/fs/cgroup/memory.stat # cgroup v2 docker exec 容器名 cat /sys/fs/cgroup/memory.current

总结

日常使用直接敲docker stats就够了,再配合--no-stream和--format就能满足绝大多数场景。简单、快速、信息完整,是查看容器内存占比的首选方式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询