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 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM