Docker 如何查看各个容器的内存占比?一篇实用指南
前言在日常运维或排查问题时经常需要快速了解每个 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 容器名或ID4. 自定义输出格式(更干净)只显示名称、内存使用和占比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就能满足绝大多数场景。简单、快速、信息完整是查看容器内存占比的首选方式。