计算Bash中Docker容器使用的总内存

Nic*_*aux 5 bash sh docker

如何在一个Bash命令行中计算Docker本地Docker引擎上运行的容器使用的总内存?

Nic*_*aux 8

我使用以下命令来计算以MB为单位的总内存。

docker stats --no-stream --format 'table {{.MemUsage}}' | sed 's/[A-Za-z]*//g' | awk '{sum += $1} END {print sum "MB"}'
Run Code Online (Sandbox Code Playgroud)

或大于1GiB

docker stats --no-stream --format 'table {{.MemUsage}}' | sed 's/\.\([0-9]*\)GiB/\1MiB/g' | sed 's/[A-Za-z]*//g' | awk '{sum += $1} END {print sum "MB"}'
Run Code Online (Sandbox Code Playgroud)


Tom*_*Kay 6

太长了;博士

docker stats --no-stream --format '{{.MemUsage}}' | awk '{print $1}' | sed 's/GiB/ * 1024/;s/MiB//;s/KiB/ \/ 1024/' | bc -l | awk '{s+=$1} END {print s}'
Run Code Online (Sandbox Code Playgroud)

分解一下:

docker stats --no-stream --format '{{.MemUsage}}'- 仅获取内存使用情况

awk '{print $1}'- 从每行中剥离总内存

sed 's/GiB/ * 1024/;s/MiB//;s/KiB/ \/ 1024/'- 将值标准化为 MiB

bc -l- 运行计算

awk '{s+=$1} END {print s}'- 对所有行求和