Docker 容器 DNS 别名在其他容器中可用

标签 docker docker-compose

我想设置两个 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/

相关文章:

docker - redis master 看不到 slave

linux - 如何为Shell脚本套件创建Docker镜像

mongodb - 由于缺少 featureCompatibilityVersion 文档,无法启动 mongod。 Docker 问题

docker - 当我在不同的目录中使用 docker-compose -f 时,未读取环境文件

docker - 使用 docker-compose 在端口 9100 上无法访问 Prometheus Nodeexporter

git - standard_init_linux.go :185: exec user process caused "no such file or directory" building docker image

php - 无法将 PhpStorm 与 xdebug 与 Docker 连接

docker - Docker容器在Macvlan网络中丢失数据包

在 Jenkins CI 中随机失败

django - 使用 Docker-Compose 和 nginx-proxy 时出现 502 Bad Gateway 错误