有没有办法在docker stats中显示容器名称?

时间:2015-06-09 12:40:46

标签: docker

我想显示所有正在运行的容器的状态,所以我可以像下面那样实现它:

  

docker stats $(docker ps -q)

CONTAINER           CPU %               MEM USAGE/LIMIT       MEM %               NET I/O
04cdc87ba3cf        0.03%               468.8 MiB/3.784 GiB   12.10%              6.827 KiB/10.2 KiB
7d30fcbd8b36        0.09%               88.09 MiB/3.784 GiB   2.27%               28.23 KiB/289.2 KiB
a09ef63b2c59        97.94%              271.5 MiB/512 MiB     53.03%              3.644 MiB/190.2 KiB
a29681c1980f        0.10%               9.066 MiB/3.784 GiB   0.23%               2.538 KiB/648 B

但列容器仅显示容器ID。我需要容器名称。例如:

  

docker stats lrlcms_web_1

CONTAINER           CPU %               MEM USAGE/LIMIT      MEM %               NET I/O
lrlcms_web_1        0.09%               88.1 MiB/3.784 GiB   2.27%               28.85 KiB/289.2 KiB

那么如何获取所有容器名称?只是为了:

  

docker stats`所有容器的名称'

例如:

  

docker stats lrlcms_db_1 lrlcms_redis_1

CONTAINER           CPU %               MEM USAGE/LIMIT       MEM %               NET I/O
lrlcms_db_1         0.05%               450.3 MiB/3.784 GiB   11.62%              8.737 KiB/10.2 KiB
lrlcms_redis_1      0.08%               7.383 MiB/3.784 GiB   0.19%               4.448 KiB/648 B

4 个答案:

答案 0 :(得分:82)

或者,使用普通" docker ps"而不是" awk" ...注意" - 格式"通常与" docker inspect":

一起使用
docker stats $(docker ps --format '{{.Names}}')

2017-02-12请参阅马纳特的答案(https://stackoverflow.com/a/42060599/72717)。 Docker 1.13.0" stats"可以在" - 格式":

中显示容器名称
docker stats --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"

答案 1 :(得分:52)

arraylist .add(0, object)

答案 2 :(得分:9)

自docker 1.13.0 (#27797)以来,有一个支持容器名称的格式选项。所以你可以像这样运行它:

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

有关详细信息,请参阅Docker Formatting

答案 3 :(得分:4)

有点hacky,但有效:

docker stats $(docker ps | tail -n +2 | awk '{print $NF}')

tail -n +2用于删除docker ps标题行,最后awk '{print $NF}'打印每个输入行的最后一列(即容器名称)