Docker apt-get更新失败

有人可以帮我搞定在我的docker集装箱工作吗? 每当我尝试运行我的docker容器中的任何apt-get命令,命令失败。 我正在运行Docker版本1.1.1,在Ubuntu 12.04上构buildbd609d2。

当我做

$ sudo docker run -i -t ubuntu:14.04 /bin/bash # apt-get update 

我得到错误说

无法parsing“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

而且我可以ping通两台服务器,所以我确信防火墙不仅仅是丢弃数据包。

任何帮助,将不胜感激!

谢谢!

感谢你的帮助! 我发现这是一个DNS问题,这是因为防火墙。 search了一些后,我发现这个问题,我无法find,而search“dockerapt-get失败”

Docker – 在企业networking上构build映像时networking调用失败

他的问题与我的类似,解决scheme帮助我得到它的工作。 对于将来发现这个问题的任何人,我已经复制了他的解决scheme。

这些Google服务器无法从我们的防火墙后面访问,这就是为什么我们无法parsing任何URL。

解决的办法是告诉Docker使用哪个DNS服务器。 这个修复取决于你如何安装Docker:Ubuntu Package

如果您安装了Ubuntu软件包,请编辑/ etc / default / docker并添加以下行:

DOCKER_OPTS =“ – dns <your_dns_server_1> –dns <your_dns_server_2>”

您可以根据需要添加尽可能多的DNS服务器。 一旦你编辑了这个文件,你将需要重新启动你的Docker服务:

sudo服务docker重启

二进制

如果您已经通过二进制方法(即无包)安装了Docker,那么您在启动Docker守护程序时设置DNS服务器:

sudo docker -d -D –dns –dns&

首先检查是否有连接,直接ping ip 91.189.92.201 archive.ubuntu.com指向:

ping 91.189.92.201

如果你仍然无法到达主机,这不是一个DNS问题。

另外,如果你有互联网连接,你可以做一个黑客。 只需将一行放入/etc/hosts文件并解决问题:

91.189.92.201 archive.ubuntu.com

我遇到了两个不同情况下的问题,决议是不同的… … –

第一个用Win7 + virtualbox(Xubuntu 16.04)这个评论做了这个工作: https : //stackoverflow.com/a/29659783/2260796

我修改文件/ etc / default / docker:

DOCKER-OPTS =“ – ip-masq = true –dns my_ip_dns_win –dns 8.8.8.8 –dns 8.8.4.4”然后运行sudo service docker restart

在Xubuntu操作系统上的第二个(Ubuntu的16.04)先例的决议是不够的。 这个评论做了这个工作: https : //github.com/docker/docker/issues/1809我不得不在文件/etc/NetworkManager/NetworkManager.conf中注释一行:

DNS =的dnsmasq

然后运行

sudo重启networkingpipe理器

我使用的是Mint的版本,在安装了Docker并尝试创build一个Ubuntu的映像来执行apt-get update命令不能识别的情况下,为了解决这个问题,我做了一些步骤

 docker run -it -p 8080:80 ubuntu /bin/bash echo "91.189.92.201 archive.ubuntu.com" >> /etc/hosts cat /etc/hosts apt-get update