我想设置两个 Docker 容器,它们都知道自己的 DNS 名称和其他的 DNS 名称。如果它必须仅在一个方向上,则可以通过链接轻松完成。但是链接在容器之间建立了依赖关系,从而阻止它们启动。
我想要的是这样的(docker-compose.yml):
version: '3'
services:
one:
hostname: one.priv
links:
- "two:two.priv"
two:
hostname: two.priv
links:
- "one:one.priv"
最佳答案
您可以在 docker-compose v3 中创建网络和别名来完成此操作。
您可以定义一个或两个网络(我将编写一个更复杂的示例):
networks:
mynetwork:
mynetwork2:
然后在每个网络中定义一个别名:
services:
one:
networks:
mynetwork1:
aliases:
- one
- one.priv
mynetwork2:
aliases:
- one2
two:
mynetwork1:
aliases:
- two
- two.priv
mynetwork2:
aliases:
- two
关于Docker 容器 DNS 别名在其他容器中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47394205/