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

问题描述 投票:0回答:2

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

我不想使用卷,或者将撰写文件静态传递到容器并解析它,或者传递包含来自环境变量的这些信息的列表。

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

(我想获取组成我的应用程序的所有容器的列表,以便我可以使用 registratorconsul 监控哪些容器的上升和下降)。

docker docker-compose microservices consul registrator
2个回答
2
投票

请按照指示操作:

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

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


0
投票

如果您在

docker-compose
中跟随2个空格来定义服务,您可以通过以下命令获取服务列表

docker-compose config  |grep -E '^  [a-zA-Z_-]+'
© www.soinside.com 2019 - 2024. All rights reserved.