如何从容器中的 Docker-compose 堆栈中获取 Docker 网络的名称?

How to get the name of the Docker network in a Docker-compose stack from within the containers?

我有一个 Docker Compose 堆栈应用程序。该应用程序的一个功能是它有一个 .NET Core 后端 运行 作为堆栈中的容器,能够产生新的临时容器 运行 数据处理任务。这些容器需要与堆栈存在于同一网络中,以便能够访问数据库。 .NET Core 后端容器包含必要的 docker 工具,可以使用 docker-in-docker 方法执行 docker 命令。

我需要知道如何从堆栈中的容器 中找出堆栈正在使用的网络的名称。只需知道容器本身 运行 所在的网络名称就足够了。但是我不能也不想依赖任何硬编码值。一个替代方案就是能够毫无疑问地知道我在运行里面的容器的名称,所以我可以使用docker inspect来拉取网络名称。

Docker-compose 似乎确实使用了相对可预测的名称(例如 myapp_backend_1 用于后端容器。myapp_default 用于网络)但据我所知这些名称不是保证所以我不能依赖于将这些名称硬编码到应用程序中。

总结:

您可以从容器中获取有关容器的所有详细信息,利用 docker 远程 API。

我已经回答了这个

如果有帮助,请检查并告诉我。