我想显示所有正在运行的容器的状态,所以我可以像下面那样实现它:
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
答案 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}'
打印每个输入行的最后一列(即容器名称)