由于网络名称是开放源代码项目,因此我尝试不对其网络名称进行硬编码(并且我在同一服务器上运行了多个实例,以用于不同的应用程序。)
在定义网络时是否可以使用环境变量?
这不起作用:
networks:
${DOCKER_NETWORK_NAME}:
name: ${DOCKER_NETWORK_NAME}
答案 0 :(得分:0)
Compose的内部概念为project name,大多数Docker对象名称都以该名称为前缀。例如,如果您位于名为foo
的目录中,并且您的Compose文件包含
networks:
something:
然后运行docker network ls
,您将看到一个名为foo_something
的网络。
通常,我建议不要手动指定网络,卷或容器的名称。您可以在docker-compose.yml
文件中选择要使用的任何名称,并且该名称的作用范围仅限于该文件。
相反,这要求在不同名称的目录中进行系统的不同安装,设置COMPOSE_PROJECT_NAME
环境变量(可能在.env
文件中)或始终使用{{1} }标志。
在非常特殊的网络情况下,撰写provides a network named default
是默认的,如果您实际上没有docker-compose -p
块。使用此功能实际上没有任何缺点,并且大多数应用程序不需要多个内部网络。我只会完全忽略networks:
。