如何修复Docker的“错误拉图像…太多redirect”失败,同时从registry中提取图像?
我在OS X 10.10上通过CoreOS和Vagrant运行Docker。
当我在CoreOS中运行docker pull ubuntu
时,出现以下错误:
$ docker pull ubuntu Pulling repository ubuntu cc0067db4f11: Error pulling image (precise) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/cc0067db4f11198ef6fd0435f96a973e559b1cebfceb2bc8e4fe527b32045c2f/ancestry: dial tcp: lookup cdn-registry-1.dcc0067db4f11: Error pulling image (precise) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/cc0067db4f11198ef6fd0435f96a973e559b1cebfceb2bc8e4fe527b32045c2f/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 6006e6343fad: Error pulling image (quantal) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/6006e6343fadaaeb5dd98436a3cd17eac8c03cabca1ed4c8778d039e72ebcc9c/ancestry: dial tcp: lookup cdn-registry-1.d6006e6343fad: Error pulling image (quantal) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/6006e6343fadaaeb5dd98436a3cd17eac8c03cabca1ed4c8778d039e72ebcc9c/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 7656cbf56a8c: Error pulling image (13.04) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/7656cbf56a8c831de71ef43809b04fcf8125e7b039250835b6c5f6f280daf12e/ancestry: dial tcp: lookup cdn-registry-1.doc7656cbf56a8c: Error pulling image (13.04) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/7656cbf56a8c831de71ef43809b04fcf8125e7b039250835b6c5f6f280daf12e/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 3db9c44f4520: Error pulling image (lucid) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710/ancestry: dial tcp: lookup cdn-registry-1.doc3db9c44f4520: Error pulling image (lucid) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 5cf8fd909c6c: Error pulling image (trusty) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/5cf8fd909c6ccc61199df6dbeb165767b83c23842ef49ca3ef3b81ece1bdce4f/ancestry: dial tcp: lookup cdn-registry-1.do5cf8fd909c6c: Error pulling image (trusty) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/5cf8fd909c6ccc61199df6dbeb165767b83c23842ef49ca3ef3b81ece1bdce4f/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects d2099a5ba6c5: Error pulling image (saucy) from ubuntu, endpoint: https://cdn-registry-1.docker.io/v1/, Get https://cdn-registry-1.docker.io/v1/images/d2099a5ba6c5a0f94f84162d69b4cb79b47c7ea1768550c6cee55a7ba2dc3647/ancestry: dial tcp: lookup cdn-registry-1.docd2099a5ba6c5: Error pulling image (saucy) from ubuntu, Get https://cdn-registry-1.docker.io/v1/images/d2099a5ba6c5a0f94f84162d69b4cb79b47c7ea1768550c6cee55a7ba2dc3647/ancestry: dial tcp: lookup cdn-registry-1.docker.io on [10.0.2.3]:53: too many redirects 2014/06/05 12:17:11 Could not find repository on any of the indexed registries.
我真的很感激,如果有人可以给我一个有用的build议,如何解决这个问题。
试试这个临时的解决方法:
osx$ boot2docker up osx$ boot2docker ssh docker@boot2docker$ sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf docker@boot2docker$ sudo /etc/init.d/docker restart
它工作,直到重新启动
我不知道OS X,但在Linux上,这可能是由于主机上的“坏”/etc/resolv.conf。 例如,Ubuntu的提出像这样的:
nameserver 127.0.1.1
然后通过一些服务处理DNS请求。 问题是,这是从图像内部访问。
为了解决这个问题,我不得不添加一些外部名称服务器,如:
nameserver 127.0.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4
使用此命令尝试从Docker存储库中提取容器时,遇到了类似的问题:
docker pull ubuntu
请注意,我在virtualbox内部使用了coreos,并且使用Nat作为我的networkingconfiguration来访问互联网。 使用virtualbox切换networking模式时,我无法做任何拉动。
我解决了这个问题,通过引入这个命令重新启动docker与systemctl :
sudo systemctl restart docker
然后我的拉工作正常。 我希望这个解决scheme帮助你。 我通过以下链接从CoreOS创build者之一( Brandon Philips )的谷歌组合问题中获得: https ://groups.google.com/forum/#! topic/ coreos-dev/vWqSbPgNYro
10.0.2.3
是virtualbox dns服务器,请检查微调VirtualBox NAT引擎
您可以像其他build议使用8.8.8.8
这是谷歌DNS服务器。
# /etc/resolve.conf nameserver 8.8.8.8
如果你在Intranet上工作,那么用普通的dns服务器replace它,你可以像下面那样添加search
# /etc/resolve.conf nameserver xxx.xxxx.xxx search company.com
这将是很好的访问您的私人回购
在MacOSX上,如果您使用Docker机器,您可以尝试:
docker-machine ls docker-machine ssh YOUR_VM_NAME
然后在VM中:杀死/ usr / local / bin / docker进程并手动启动它:
sudo /usr/local/bin/docker -d -D -g /var/lib/docker -H unix:// -H tcp://0.0.0.0:2376 --label provider=virtualbox --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -s aufs
有趣的是,像这样重新启动
sudo /etc/init.d/docker restart
没有帮助。
在Windows上,我可以通过执行以下操作来修复它:
- 转到虚拟框应用程序
- 删除创build的虚拟机
- 重新启动计算机(可选,我认为)
- 开始Kitematic
- 回到Virtual Box,点击显示
- 确保ping google.com命令有效
现在我可以从集线器下载泊坞窗图像。