CodeGym /课程 /Docker SELF /内置监控工具

内置监控工具

Docker SELF
第 21 级 , 课程 2
可用

3.1 docker stats 命令

Docker 提供了一个实时监控容器的内置工具 —— docker stats 命令。这个命令可以追踪容器的主要性能指标,比如 CPU、内存、网络和磁盘的使用情况。接下来我们来看看如何使用 docker stats 来了解你的容器的状态和性能。

docker stats 命令会实时提供每个容器的动态统计信息。它展示以下几个指标:

  • CPU %: 容器的 CPU 使用百分比。
  • MEM USAGE / LIMIT: 容器的内存使用情况及设置的限制。
  • MEM %: 容器的内存使用百分比。
  • NET I/O: 网络流量(进和出)。
  • BLOCK I/O: 磁盘输入/输出操作次数。
  • PIDS: 容器内部运行的进程数量。

docker stats 命令的基本用法

运行不带参数的 docker stats 命令会显示所有正在运行的容器的指标:

Terminal


docker stats 

docker stats 命令输出示例:

Terminal


CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
d9b100f2f636   my_nginx            0.07%     1.24MiB / 1.952GiB    0.06%     1.68kB / 0B       0B / 12.3MB       2
fa3f3f3f3f3f   my_postgres         2.13%     230.5MiB / 1.952GiB   11.52%    2.12MB / 2.05MB   85.6MB / 45.2MB   10

监控特定容器

你可以通过指定容器的名称或 ID 来追踪特定容器的指标:

Terminal


docker stats my_nginx 

3.2 配置命令 docker stats

docker stats 命令的参数

docker stats 支持多个选项,可以自定义数据输出:

  • --all-a: 显示所有容器的指标,包括已停止的容器。
  • --no-stream: 仅输出一次指标数据并终止命令。
  • --format: 使用模板格式化数据输出。

使用参数 --no-stream 的示例

一次性输出所有容器的指标数据:

Terminal

docker stats --no-stream

使用参数 --format 的示例

格式化数据输出:

Terminal

docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

输出示例:

Terminal

CONTAINER ID   CPU %     MEM USAGE / LIMIT
d9b100f2f636   0.07%     1.24MiB / 1.952GiB
fa3f3f3f3f3f   2.13%     230.5MiB / 1.952GiB

3.3 实际使用 docker stats

示例 1: 追踪服务器负载

你可以用 docker stats 来监控服务器上的容器,找到那些对 CPU 或内存负载很高的容器。这能帮你优化资源使用并提高应用的性能。

Terminal

docker stats

示例 2: 测试期间监控特定容器

在测试应用的新版本或更改配置时,你可以追踪特定容器的指标,确保没有对性能产生负面影响。

Terminal

docker stats my_test_container

示例 3: 与监控系统集成

你可以用 --format 选项将 docker stats 的输出格式化为你监控工具兼容的格式,从而集成到外部监控系统中。

Terminal

docker stats --no-stream --format "{{.Container}}: CPU {{.CPUPerc}}, MEM {{.MemUsage}}"

docker stats 命令的限制

虽然 docker stats 提供了实时有用的指标,但它也有一些限制:

  • 指标有限: 该命令仅显示基础指标,无法提供容器状态的详细信息。
  • 手动使用: docker stats 适合手动使用,但对于自动化监控和告警,最好用像 Prometheus 和 Grafana 这样的专业工具。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION