📜  获取 docker 资源使用情况 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:11:50.287000             🧑  作者: Mango

获取 Docker 资源使用情况 - Shell-Bash

在运行 Docker 容器的过程中,我们可能需要获取容器的资源使用情况,以便于性能调优和资源管理。本文将会介绍如何使用 Shell-Bash 语言获取 Docker 容器的 CPU、内存和网络等资源使用情况。

获取 CPU 使用情况

使用 docker stats 命令可以获取 Docker 容器的 CPU 使用情况。该命令可以显示容器的 CPU 利用率、总 CPU 时间和 CPU 核数等信息。

$ docker stats <container_id>

其中,<container_id> 是要获取信息的 Docker 容器的 ID。执行命令后,将会输出类似下面的信息:

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O   PIDS
e25e1d9271c1   webapp    0.08%    8.555 MiB / 1.95 GiB   0.43%     0 B / 0 B     0 B / 0 B   1

上面的输出结果中,CPU 利用率为 0.08%,内存使用情况为 8.555 MiB / 1.95 GiB。

获取内存使用情况

使用 docker stats 命令同样可以获取 Docker 容器的内存使用情况。该命令可以显示容器的内存使用率、内存限制和内存最大值等信息。

$ docker stats <container_id>

其中,<container_id> 是要获取信息的 Docker 容器的 ID。执行命令后,将会输出类似下面的信息:

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O       BLOCK I/O   PIDS
e25e1d9271c1   webapp    0.08%    8.555 MiB / 1.95 GiB   0.43%     0 B / 0 B     0 B / 0 B   1

上面的输出结果中,内存使用情况为 8.555 MiB / 1.95 GiB,内存使用率为 0.43%。

获取网络使用情况

使用 ifstat 命令可以获取 Docker 容器的网络使用情况。该命令可以显示容器的网络传输速率和总流量。

$ docker exec <container_id> ifstat

其中,<container_id> 是要获取信息的 Docker 容器的 ID。执行命令后,将会输出类似下面的信息:

   Time            enp0s8          
HH:MM:SS   Kb/s in  Kb/s out   
00:00:01      1.86      0.00 
00:00:02      0.07      0.05 
00:00:03      1.09      0.00 

上面的输出结果中,第二列是网络流入速率,第三列是网络流出速率。

以上就是如何使用 Shell-Bash 语言获取 Docker 容器的 CPU、内存和网络等资源使用情况的介绍。通过这些命令,我们可以及时获取容器的性能数据,从而对容器进行优化和管理。