VMWare 虚拟化 Ubuntu 64 (16.04)-- docker 无法链接 pull 镜像 ?(solved)

背景

 

根据项目的需要,虚拟化一个Ubuntu OS 来玩 docker,虚拟机选择的是WMWare (VMware-player-14.0.0-6661328); Ubuntu的镜像来自于官网(ubuntu-16.04.3-desktop-amd64.iso)。

期初做这个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 

posted @   TonyZhang24  阅读(2428)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示