期初做这个 WM 的时候是在 Win7 Professonal 64 完成的,做完之后在 Windows 2012 server 上面运行,VM 一切正常(包括使用 docker pull 镜像)。
后来,又在一台 Win10 home 版的机器上部署虚拟机,发现部署完成之后 docker 不能 pull 镜像,报错如下:
解决方法
- $ docker pull mysql
- Using default tag: latest
- Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
网上搜索了一大堆,解决问题的方案都是分为两派:
1. "添加国内镜像仓库",例如 ali-cloud, dao-cloud, 等等。。。
2. 查看防火墙,关闭防火墙。经过分析,以及不断地尝试,首先排除防火墙的问题。此外,"添加国内镜像的方法" 也只是一个替代方案,没有从根本上解决问题。 整理思路之后,尝试着在 WMWare 的网络设置上试试看:
查看 WmWare 的网络设置,默认情况下是 NAT,如图所示:
在 NAT 的模式下,尝试 pull 一个 mysql 的镜像,报错如下:
试着修改 WMWare 网络的网络设置为 "bridge":
再次运行 pull 命令, where amazing happened!!!
总结其实,我们只是将 WMWare 的网络设置从 "NAT" 修改成为 "Bridge", 然后就 OK 了。具体的原理和原因我也无从查证,希望有大神能有指点指点。
虽然折腾的有点晚了,不过还是解决了问题 :)
感谢大家的观看,如果知道原因的也请留言,一起讨论!! Thanks
来源: http://www.cnblogs.com/atuotuo/p/8099891.html