Docker容器可以访问DNS但不能解析主机

时间:2015-03-25 21:08:46

标签: linux dns docker fedora-21

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

这是一个简要说明:

  1. 什么都没有解决; apt-get,pip,one-off ping容器等。运行docker run -it --dns=8.8.8.8 ubuntu ping www.google.com会导致ping: unknown host www.google.com带有--dns标记和不带docker run -it ubuntu ping 8.8.8.8标记。

  2. 我可以从容器内外达到8.8.8.8。 /etc/sysconfig/docker有效。

  3. 通过编辑DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.8.4"添加{{1},我已将容器配置为同时使用8.8.8.8,8.8.8.4和我的本地网络DNS服务器(各种排列)并在运行时在容器上设置--dns 8.8.8.8标志。每次更改之间都会运行systemctl restart docker

  4. ip_forward已启用。 (见here

  5. 我已完成指定here的完全重置。

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

在完成所有这些之后,完全重新启动解决了这个问题 - 尽管如此,仍然无法解决问题。

如果有人知道实际原因是什么,我仍然很好奇,但现在问题已经消失。

答案 2 :(得分:0)

您可以在docker映像中安装dig之类的工具来解决该问题。

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

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