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