gpt4 book ai didi

docker - 无论docker-compose.yml如何,如何全局显示docker-compose创建的所有正在运行的容器

转载 作者:行者123 更新时间:2023-12-05 00:51:53 27 4
gpt4 key购买 nike

我有几个 docker-compose.yml 文件,分别使用 docker-compose up 运行正常。

每个 docker-compose 运行多个容器。

它们启动后,我无法通过 docker ps 查看哪些容器已启动。
我可以通过 docker-compose ps 看到一些东西,但仅限于特定的 docker-compose.yml。

我想访问容器状态的全局轮询​​。

如何列出所有正在运行的容器,无论其来源如何?

最佳答案

Docker compose 为它创建的每个容器添加标签。如果要获取compose创建的所有容器,可以执行一个容器 ls 并应用一个过滤器。

docker container ls --filter label=com.docker.compose.project

这将显示由 compose 创建的所有 running 容器,无论项目名称如何。

例如,我从不同的 compose 项目中创建了一些容器。使用过滤器,我只得到那些,但没有其他容器不是由 compose 创建的,因此没有项目标签。

$ base='{{.Status}}\t{{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Networks}}\t{{.Mounts}}'
$ compose='{{.Label "com.docker.compose.project"}}\t{{.Label "com.docker.compose.service"}}'

$ docker container ls --all \
--filter label=com.docker.compose.project \
--format "table $compose\t$base"

project service STATUS CONTAINER ID NAMES IMAGE PORTS NETWORKS MOUNTS
kafka kafka Up 5 minutes 3f97a460266e kafka_kafka_1 bitnami/kafka:3 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka_default kafka_kafka_da…,kafka_kafa_con…
kafka zookeeper Up 5 minutes 0b6f32ccd196 kafka_zookeeper_1 bitnami/zookeeper:3.7 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp kafka_default kafka_zookeepe…
manager db Up 22 minutes 4f0e799b4fd7 manager_db_1 da2cb49d7a8d 5432/tcp manager_default 0d667a0e48a280…
foo db Exited (0) 37 minutes ago e106c5cdbf5e foo_db_1 da2cb49d7a8d foo_default 5a87e93627b8f6…
foo backend Up 10 minutes 08a0873c0587 foo_backend_2 c316d5a335a5 80/tcp foo_default
foo frontend Up 10 minutes be723bf41aeb foo_frontend_1 c316d5a335a5 80/tcp foo_default
foo backend Up 10 minutes 5d91d4bcfcb3 foo_backend_1 c316d5a335a5 80/tcp foo_default
manager app Up 22 minutes 2ca4c0920807 manager_app_1 c316d5a335a5 80/tcp manager_default
manager app Up 22 minutes b2fa2b9724b0 manager_app_2 c316d5a335a5 80/tcp manager_default
loadbalancer app Exited (0) 37 minutes ago 791f4059b4af loadbalancer_app_1 c316d5a335a5 loadbalancer_default

如果您想查看所有容器而不管它们的状态,您可以在 ls 命令中添加 --all 或短 -a 标志,就像我在我的例子。否则,只显示正在运行的容器。

关于docker - 无论docker-compose.yml如何,如何全局显示docker-compose创建的所有正在运行的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70915151/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com