【发布时间】:2019-11-04 13:29:27
【问题描述】:
我有一个 Docker Compose 堆栈应用程序。该应用程序的一个功能是它有一个 .NET Core 后端作为堆栈中的容器运行,它能够生成新的临时容器来运行数据处理任务。这些容器需要与堆栈存在于同一网络中才能访问数据库。 .NET Core 后端容器包含必要的 docker 工具,并且可以使用 docker-in-docker 方法执行docker 命令。
我需要知道如何从堆栈中的容器中找出堆栈正在使用的网络的名称。只需知道容器本身运行的网络名称就足够了。但是我不能也不想依赖任何硬编码的值。另一种方法是简单地能够毫无疑问地知道我在其中运行的容器的名称,这样我就可以使用docker inspect 来拉取网络名称。
Docker-compose 似乎确实使用了相对可预测的名称(例如,myapp_backend_1 用于后端容器。myapp_default 用于网络)但据我所知,这些名称并不能保证,所以我不能依赖硬编码这样名称进入应用程序。
总结:
- 需要能够在 Docker 容器内检索 Docker 容器所连接的网络的名称。
- 或者,需要能够从该容器中确定容器的名称,以便我可以使用
docker inspect检索网络名称。
【问题讨论】:
标签: docker docker-compose docker-in-docker