Docker从入门到精通 您所在的位置:网站首页 指定私人DNS服务 Docker从入门到精通

Docker从入门到精通

2024-07-11 17:29| 来源: 网络整理| 查看: 265

为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 或 Fedora

  dnsmasq 要在 RHEL、CentOS 或 Fedora 上禁用:

禁用dnsmasq服务:

sudo systemctl stop dnsmasq sudo systemctl disable dnsmasq

使用Red Hat 文档手动配置 DNS 服务器。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有