有人可以帮我在Docker容器中轻松工作吗?每当我尝试在Docker容器中运行任何apt-get命令时,该命令都会失败。我正在运行Docker 1.1.1版,在Ubuntu 12.04上构建bd609d2。
当我做
$ sudo docker run -i -t ubuntu:14.04 /bin/bash # apt-get update
我说错了
无法解析“ archive.ubuntu.com”
我试图取消注释/ etc / default / docker下面的行
DOCKER_OPTS =“-dns 8.8.8.8 –dns 8.8.4.4”
但我仍然无法ping google.com
ping:未知主机
我确认该容器正在使用dns服务器8.8.8.8和8.8.4.4
root @ 0baa87fc6322:/#cat /etc/resolv.conf 域名服务器8.8.8.8 域名服务器8.8.4.4
root @ 0baa87fc6322:/#cat /etc/resolv.conf
域名服务器8.8.8.8
域名服务器8.8.4.4
而且我能够ping通这两个服务器,因此我很确定防火墙不仅会丢弃我的数据包。
任何帮助,将不胜感激!
谢谢!
感谢你的帮助!我发现这是DNS问题,这是由于防火墙引起的。搜索更多后,我发现在搜索“ docker apt-get fail”时找不到该问题
Docker-在企业网络上构建映像期间网络调用失败
他的问题类似于我的问题,该解决方案帮助我使其正常运行。我已将他的解决方案复制给以后发现此问题的任何人。
这些Google服务器无法从防火墙后面访问,这就是为什么我们无法解析任何URL的原因。 解决方法是告诉Docker使用哪个DNS服务器。此修补程序取决于您如何安装Docker:Ubuntu软件包 如果您已安装Ubuntu软件包,请编辑/ etc / default / docker并添加以下行: DOCKER_OPTS =“-dns <您的dns_server_1> --dns <您的dns_server_2>” 您可以在此配置中添加任意数量的DNS服务器。编辑完此文件后,您将要重新启动Docker服务: sudo服务docker重新启动 二进制文件 如果您已经通过binaries方法安装了Docker(即没有软件包),那么在启动Docker守护程序时就设置了DNS服务器: 须藤码头工人-d -D –dns –dns&
这些Google服务器无法从防火墙后面访问,这就是为什么我们无法解析任何URL的原因。
解决方法是告诉Docker使用哪个DNS服务器。此修补程序取决于您如何安装Docker:Ubuntu软件包
如果您已安装Ubuntu软件包,请编辑/ etc / default / docker并添加以下行:
DOCKER_OPTS =“-dns <您的dns_server_1> --dns <您的dns_server_2>”
您可以在此配置中添加任意数量的DNS服务器。编辑完此文件后,您将要重新启动Docker服务:
sudo服务docker重新启动
二进制文件
如果您已经通过binaries方法安装了Docker(即没有软件包),那么在启动Docker守护程序时就设置了DNS服务器:
须藤码头工人-d -D –dns –dns&