Docker 容器可以访问 DNS 但无法解析主机

Docker container can reach DNS but not resolve hosts

我遇到了一个有趣的问题 运行宁 docker 容器:出乎意料,我无法从容器内解析 DNS。

这是 运行向下:

  1. 没有解决任何问题; apt-get、pip、一次性 ping 容器等。运行 docker run -it --dns=8.8.8.8 ubuntu ping www.google.com 在有和没有 --dns 标志的情况下都会导致 ping: unknown host www.google.com

  2. 我可以从容器内部和外部到达 8.8.8.8。 docker run -it ubuntu ping 8.8.8.8 有效。

  3. 我通过编辑 /etc/sysconfig/docker 添加 DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.8.4" 并在 运行 时间在容器上设置 --dns 8.8.8.8 标志。每次更改之间 systemctl restart docker 为 运行。

  4. ip_forward 已启用。 (参见 here

  5. 我已经按照说明进行了完全重置 here

我运行正在安装 Fedora 21,docker 客户端版本 1.5.0。

有什么想法吗?我完全不知道是什么阻止了 docker 成功访问互联网。

在这一切之后,完全重启解决了问题 - 虽然,这仍然没有回答它是什么。

如果有人知道真正的原因是什么,我仍然很好奇,但现在问题已经解决了。

他们已经在 1.8 中解决了这个问题:https://github.com/docker/docker/issues/13381干杯。

您可以在 docker 图像中安装 dig 等工具来分析问题。

在您的 /etc/hosts 文件中使用静态主机,在 docker 图像中制作 apt-get 运行。将这些行添加到您的主机文件中:

213.32.5.7 debian.mirrors.ovh.net
141.76.2.4 ftp.de.debian.org 
217.196.149.233 mirror-conova-security.debian.org
212.211.132.250 lobos.debian.org
212.211.132.250 security.debian.org 
5.153.231.4  http.debian.net 
151.101.12.204 cdn-fastly.deb.debian.org
151.101.12.204 security-cdn.debian.org