通过docker stats命令

docker stats 是实时查看容器资源使用情况的命令,包括内存、CPU、网络等。

运行以下命令查看所有正在运行的容器的内存使用情况:

1
docker stats

输出如下:

1
2
3
4
5
6
7
CONTAINER ID   NAME        CPU %     MEM USAGE / LIMIT    MEM %     NET I/O           BLOCK I/O         PIDS 
f608766507fb webserver 0.00% 9.148MiB / 3.83GiB 0.23% 1.09GB / 1.23GB 1.03MB / 2.14MB 4
ffb61bddf289 wordpress 0.01% 194.7MiB / 3.83GiB 4.97% 3.01GB / 1.49GB 169MB / 3.92GB 4
e85d0f4682ad wp-vps 0.01% 167.1MiB / 3.83GiB 4.26% 2.67GB / 1.2GB 112MB / 4.17GB 4
a17e70573bcd umami 0.00% 213.9MiB / 3.83GiB 5.46% 47.3MB / 60.6MB 4.72MB / 73.8MB 49
38aafda1acb7 db 0.81% 550.7MiB / 3.83GiB 14.04% 635MB / 5.38GB 121MB / 23GB 46
1448a4a2b3a8 ssr 0.03% 14.63MiB / 3.83GiB 0.37% 788kB / 793kB 4.61MB / 61.4kB 3
  • MEM USAGE / LIMIT:当前内存使用量和内存限制。
  • MEM %:内存使用率。
  • 如果未设置内存限制,则显示的是系统的总可用内存。

通过docker inspect 查看内存使用情况

docker inspect 可以获取容器的详细信息,包括内存限制和使用情况。

运行以下命令:

1
docker inspect <container_id> | grep -i Memory

或者:

1
docker inspect <container_id>

然后查看与内存相关的字段,例如 MemoryStats

通过 docker system df 查看资源使用概况

docker system df 提供了 Docker 所有资源的整体占用情况,包括镜像、容器、卷等。

运行以下命令:

1
docker system df

虽然此命令不能直接显示单个容器的内存使用,但可以作为了解全局资源占用情况的辅助工具。

第三方监控工具

如果需要更全面、直观的监控,可以使用以下工具:

  • Prometheus + Grafana:配合 Docker 的监控指标,生成内存使用率的图形化报告。
  • cAdvisor:专门用于监控容器资源使用,包括内存、CPU、磁盘和网络。
  • Portainer:提供 Docker 容器管理和资源使用的图形界面。

注意事项

  1. 设置内存限制:如果未对容器设置内存限制,容器可能会占用系统所有可用内存,导致性能问题。可以在启动容器时使用 --memory 设置内存限制,例如:
1
docker run --memory="1g" --name my-container my-image
  1. 监控多容器系统:在运行多个容器的环境中,定期使用 docker stats 或监控工具检查内存使用情况,避免资源过载。

本篇转载自:如何查看 Docker 容器的内存占用情况? - DELISTUDIO