获得 docker 机器的 CPU/Memory 百分比

Get CPU/Memory percentage of a docker machine

我想知道如何使用 docker 命令远程获取 docker 机器的 cpu 和内存百分比。 通常是 docker stats,但包含机器的信息而不是容器的信息。

非常感谢!

使用 docker info 您可以获得 docker 机器有多少 CPU 和多少内存的信息。例如:

...
CPUs: 4
Total Memory: 1.952 GiB
...

使用 docker stats -a 您可以查看所有容器及其使用 cpu 和内存:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
43c7743b5df3        1.23%               30.6 MiB / 1.952 GiB    1.53%               9.36 kB / 1.21 kB   0 B / 6.44 MB       20
a821f9c87b2c        0.80%               88.31 MiB / 1.952 GiB   4.42%               10.9 kB / 1.21 kB   60 MB / 6.55 MB     20

但是,如果我做对了,您想要的是使用 docker 命令的所有容器资源的总和。看起来没有这样的 docker 命令,但是...

我玩了一会儿得到了这个(我不是一个真正的 shell 脚本专家,所以也许它可以写得更短):

docker stats --no-stream -a --format "{{.CPUPerc}}\t{{.MemPerc}}" | \
LC_NUMERIC="C" awk '{cpu+=substr(,1,length()-1); mem+=substr(,1,length()-1)} \
END {print "CPU",cpu,"%\tMem",mem,"%"}'

它产生这个:

CPU 1.62 %  Mem 5.95 %