docker容器、虛擬機、宿主機之間的網絡配置

目前安裝,本地電腦(windows10)-vmware虛擬機(centos 7)-docker容器

網絡地址

想在本地電腦上訪問到docker容器內服務,需要三者之間互相ping通,涉及3個IP地址
1、本地電腦IP,也即宿主機IP。通過在本地cmd採用ipconfig命令查看
2、虛擬機IP,也即宿主服務器IP。通過在虛擬機上ip addr命令查看
3、docker容器IP,通過在虛擬機上ip addr命令查看
需要注意一點,在本地CMD輸入ipconfig後顯示的虛擬機IP,並不是真正的IP地址,而且主機的IP地址會不斷變化,網線或者WLAN。
在這裏插入圖片描述
上圖172.17.0.1爲容器IP,馬賽克部分爲虛擬機IP

網絡是否通

訪問服務時,需要本地、虛擬機、容器三者兩兩直接都ping的通
本地ping虛擬機:在cmd中,ping 虛擬機IP
本地ping容器
虛擬機ping容器:在虛擬機中,ping 容器IP
虛擬機ping本地
容器ping本地: 在容器中,ping 本地IP
容器ping虛擬機
上述有任何一項不通,就需要配置網絡

一些錯誤及網絡配置

1、Job for docker.service failed…docker啓動失敗,docker只有client,沒有server。
解決:
打開vi /etc/sysconfig/selinux,將selinux 屬性值改爲disabled,原來是enforing。
2、“net/http: TLS handshake timeout”錯誤,docker pull鏡像太慢
解決:
打開/etc/docker/,若沒有daemon.json文檔,則新建一個
在這裏插入圖片描述
3、docker容器與centos虛擬機連接,給docker容器分配靜態IP
打開/etc/sysconfig/network-scripts/,打開容器的網絡,ifcfg-e…命名的,
在這裏插入圖片描述
上圖中1處改爲static,再添加下列四項
IPADDR=虛擬機的IP
NETMASK=255.255.255.0
GATEWAY=虛擬機IP.2 (將虛擬機IP的最後一位變爲2,下同)
DNS1=119.29.29.29
然後重啓虛擬機網絡,service network restart
試試虛擬機ping容器,與容器ping虛擬機。

4、本機與虛擬機網絡連接
vmware安裝centos虛擬機時,選擇的是NAT方式。
打開vmware,依次打開編輯-虛擬網絡編輯器
在這裏插入圖片描述
選擇VMnet8,點擊NAT設置,修改需要管理員權限
在這裏插入圖片描述
將網關IP設置成與虛擬機IP同一網段,可爲虛擬機IP.2
在本機CMD窗口,ping 虛擬機IP
在虛擬機窗口,ping 本機IP
若還是不行,在本機打開網絡適配器設置,選擇VMnet8網絡,
在這裏插入圖片描述
接着右鍵屬性-Internet協議版本4-
在這裏插入圖片描述
使用下面的IP地址,將IP地址設置爲 虛擬機IP.1
5、本機與docker容器連接
兩者互相都ping不通時,以管理員身份打開CMD,運行
route add -p 172.17.0.0 mask 255.255.0.0 虛擬機IP
將docker容器的內部端口映射到本地的端口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章