我正在开发一个利用docker-compose
. 其中一个容器是一个看门狗组件,它定期运行一个小的 Python 脚本来获取同级容器的状态,并在其中一个容器停止时采取行动。
至此,我使用了一个应该监视的所有容器名称的列表,但现在我想知道我是否可以只监视由同一docker-compose
命令创建的所有容器。
以前,代码看起来像这样:
watched_containers = ["component-a", "component-b"]
def inspect_containers():
containers = {
(container["Names"][0].lstrip("/"), container)
for container in docker.Client().containers(all=True)
}
for container_name in watched_containers:
if containers.get(container_name, {}).get("State") != "running":
alert_container_stopped(container_name)
我发现dockerpy
不知道docker-compose
,所以我创建了一个基于 docker-compose 项目名称标签(com.docker.compose.project
)过滤容器的函数,但现在我有一个硬编码的项目名称而不是容器名称。有没有办法获取当前项目名称,或者有没有其他方法可以获取同一个compose中的容器列表?
谢谢