Docker从入门到精通 | 您所在的位置:网站首页 › 指定私人DNS服务 › Docker从入门到精通 |
为Docker指定DNS服务器
如果您的容器需要解析网络内部的主机,那么公共名称服务器就不够用了。你有两个选择: 您可以指定 Docker 使用的 DNS 服务器,或者 dnsmasq 您可以在 NetworkManager 中禁用。如果您这样做,NetworkManager 会将您真正的 DNS 名称服务器添加到/etc/resolv.conf,但您会失去dnsmasq.您只需要使用其中一种方法。 一、为Docker指定DNS服务器配置文件的默认位置是/etc/docker/daemon.json. --config-file 您可以使用 daemon 标志更改配置文件的位置。下面的文档假定配置文件位于/etc/docker/daemon.json. 创建或编辑 Docker daemon 配置文件,默认为 /etc/docker/daemon.jsonfile,控制 Docker daemon 配置。 sudo nano /etc/docker/daemon.json添加dns具有一个或多个 IP 地址作为值的键。如果文件已有内容,您只需添加或编辑该dns行。 { "dns": ["8.8.8.8", "8.8.4.4"] }如果您的内部 DNS 服务器无法解析公共 IP 地址,请至少包含一个可以解析的 DNS 服务器,以便您可以连接到 Docker Hub,以便您的容器可以解析 Internet 域名。 保存并关闭文件。 重新启动 Docker 守护程序。 sudo service docker restart验证 Docker 是否可以通过尝试拉取镜像来解析外部 IP 地址: docker pull hello-world如有必要,验证 Docker 容器是否可以通过 ping 解析内部主机名。 docker run --rm -it alpine ping -c4 PING google.com (192.168.1.2): 56 data bytes 64 bytes from 192.168.1.2: seq=0 ttl=41 time=7.597 ms 64 bytes from 192.168.1.2: seq=1 ttl=41 time=7.635 ms 64 bytes from 192.168.1.2: seq=2 ttl=41 time=7.660 ms 64 bytes from 192.168.1.2: seq=3 ttl=41 time=7.677 ms 二、禁用dnsmasq 1) Ubuntu如果您不想更改 Docker 守护程序的配置以使用特定 IP 地址,请按照这些说明dnsmasq在 NetworkManager 中禁用。 编辑/etc/NetworkManager/NetworkManager.conf文件。 dns=dnsmasq通过在行首添加一个#字符来注释掉该行。 dns=dnsmasq保存并关闭文件。 重新启动 NetworkManager 和 Docker。作为替代方案,您可以重新启动系统。 sudo systemctl restart network-manager sudo systemctl restart docker 2) RHEL、CentOS 或 Fedoradnsmasq 要在 RHEL、CentOS 或 Fedora 上禁用: 禁用dnsmasq服务: sudo systemctl stop dnsmasq sudo systemctl disable dnsmasq使用Red Hat 文档手动配置 DNS 服务器。 |
CopyRight 2018-2019 实验室设备网 版权所有 |