【问题标题】:How to override embedded DNS server for Docker in /etc/resolv.conf from a docker-compose file如何从 docker-compose 文件覆盖 /etc/resolv.conf 中 Docker 的嵌入式 DNS 服务器
【发布时间】:2017-10-31 17:43:14
【问题描述】:

我正在使用 docker-compose 命令来创建和启动我的容器。

我的 Docker 版本 docker --version Docker version 17.09.0-ce, build afdb6d4

我的 Docker-Compose 版本 docker-compose --version docker-compose version 1.16.1, build 6d1ac21

我使用的 .yml 文件如下所示: (请注意,我只是将其缩短以删除敏感内容)

---
services:
  zookeeper:
    image: "zookeeper"
  server-1:
    cap_add:
    - "NET_ADMIN"
  server-0:
    cap_add:
    - "NET_ADMIN"
    dns:
    - 8.8.8.8
    - 9.9.9.9
    environment:
      SERVER_ID: 0
      NETEM_HOSTS: ""
      LOSS_VALUES: ""
      MAX_RATE_VALUES: ""
      DELAY_VALUES: ""
    image: "cloud.mycompany.com:5000/server-0:latest"
  fakedns:
    image: "cloud.mycompany.com:5000/fakedns:latest"
version: "3.3"

然后我开始使用: docker-compose --file compose.yml up -d

我的问题是这样的:

1) 容器出现后...当我进入容器时,例如在本例 server-0 中,我没有看到 /etc/resolv.conf 文件已更新为使用这些名称服务器。相反,它使用 docker 的嵌入式 dns,即 127.0.0.11

2) 我如何确保它使用我在 docker-compose 使用的文件中指定的内容

3) 我尝试使用命令执行此操作,它似乎可以工作,但我需要从 compose-file 执行此操作 docker run -p 4000:53 --dns=8.8.8.8 cloud.mycompany.com:5000/server-0:latest

4) 理想情况下,我希望它拥有容器“fakedns”的 IP 地址,以便它使用这个而不是嵌入的 @127.0.0.11

【问题讨论】:

    标签: java docker dns network-programming docker-compose


    【解决方案1】:

    您不会在 /etc/resolv.conf 中看到自定义 DNS 服务器,但 Docker 的解析器会将 DNS 请求转发给它们。

    用户定义的网络和 DNS

    默认情况下,v2+ 的 Docker 组合定义会创建用户定义的网络。

    具有用户定义网络的 Docker 使用 embedded DNS server 以便 Docker 可以响应本地容器请求(服务发现)。

    对于 Docker 无法解析的任何 DNS 主机,请求将被转发到 DNS 服务器。这是系统默认服务器、dockerd 中配置的服务器或在运行时为容器配置的 DNS 服务器。

    Docker DNS

    使用内部 DNS 服务器时要小心。如果您在创建鸡或鸡蛋问题时将系统 DNS 指向容器,Docker 守护程序中的事情将会中断,Docker 需要启动 DNS 但无法启动容器来提供 DNS。

    由于您的示例配置只是为一个应用程序容器设置 DNS,它应该没问题,但 make sure the DNS container is up and healthy 在您的应用程序之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      相关资源
      最近更新 更多