以机器可读格式读取Docker指标

我为我的用户运行一些Docker容器。 用户可以dynamic地启动和停止他们的容器,所以我想用某种监视系统来监视我的数据空间可用的 docker info度量。

我试图使用Docker API目录

 echo -e 'GET /info HTTP/1.0\r\n' | nc -U /var/run/docker.sock | grep '{' | python -m json.tool 

但结果是以人类可读的单位返回 – 即。 “16.93 MB”和“9 GB”,这是不适合机器处理。

使用Python Docker API库时会发生同样的情况。

 import docker client = docker.Client() print(client.info()['DriverStatus']) 

所以问题是:是否有机器可读版本的docker infoparsing出“基本数据空间​​总计”指标?

可以使用docker info --format '{{json .}}'

例如:

 user@host$ docker info --format '{{json .MemTotal}}' 3840544768