从Docker容器内部获取docker-compose的容器/服务列表

10

有一种聪明的方法可以从容器内部获取docker-compose文件中服务(或容器)列表。

我不想使用卷,也不想将compose文件静态传递到容器中并解析它,或者从环境变量中传递这些信息的列表。

docker-compose config --service提供了一个完美的结果,返回compose所有服务的列表,但我不知道如何从主机传递它到我的容器中。

(我想获取组成我的应用程序的所有容器列表,以便使用registratorconsul监视哪些容器启动和关闭。)


领事API不够吗?你可以通过服务名称进行查询。 - Robert
如果一个容器没有启动,我将永远不会知道它的存在,对吗? 所以我希望能够获得组成我的应用程序的所有容器的列表...我不想查询特定的服务。 也许我可以通过Consul来实现这个目标...但是我不知道怎么做。 谢谢。 - user2972221
@user2972221 你有找到这个问题的答案吗? - user1717828
这篇帖子现在有点过时了,但是挂载Docker套接字不就可以解决这个问题吗? - Zac Anger
1个回答

1
请按照以下说明操作:
  1. 在您的计算机上安装yq。例如,如果您的操作系统是macOS/OSX,请执行brew install yq
  2. 然后运行以下命令之一:docker-compose config | yq '.services[]|key'docker compose config | yq '.services[]|key'

您将找到所有可用服务的列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接