docker的四種網(wǎng)絡(luò)模式

Docker有四種網(wǎng)絡(luò)模式

(1)bridge:這是Docker默認(rèn)的網(wǎng)絡(luò)驅(qū)動(dòng),此模式會(huì)為每一個(gè)容器分配Network Namespace和設(shè)置IP等,并將容器連接到一個(gè)虛擬網(wǎng)橋上。如果未指定網(wǎng)絡(luò)驅(qū)動(dòng),這默認(rèn)使用此驅(qū)動(dòng)


(2)host:此網(wǎng)絡(luò)驅(qū)動(dòng)直接使用宿主機(jī)的網(wǎng)絡(luò)。



(3)none:此驅(qū)動(dòng)不構(gòu)造網(wǎng)絡(luò)環(huán)境。采用了none 網(wǎng)絡(luò)驅(qū)動(dòng),那么就只能使用loopback網(wǎng)絡(luò)設(shè)備,容器只能使用127.0.0.1的本機(jī)網(wǎng)絡(luò)。


(4)container:這個(gè)模式指定新創(chuàng)建的容器和已經(jīng)存在的一個(gè)容器共享一個(gè) Network Namespace,而不是和宿主機(jī)共享。新創(chuàng)建的容器不會(huì)創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個(gè)指定的容器共享 IP、端口范圍等。同樣,兩個(gè)容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進(jìn)程列表等還是隔離的。兩個(gè)容器的進(jìn)程可以通過 lo 網(wǎng)卡設(shè)備通信。


在默認(rèn)情況,Docker使用bridge網(wǎng)絡(luò)模式,bridge網(wǎng)絡(luò)驅(qū)動(dòng)的示意圖如下,此文以bridge模式對(duì)Docker的網(wǎng)絡(luò)進(jìn)行說明。

1、bridge網(wǎng)絡(luò)的構(gòu)建過程如下

1)安裝Docker時(shí),創(chuàng)建一個(gè)名為docke0的虛擬網(wǎng)橋,虛擬網(wǎng)橋使用“10.0.0.0 -10.255.255.255 “、”172.16.0.0-172.31.255.255″和“192.168.0.0——192.168.255.255”這三個(gè)私有網(wǎng)絡(luò)的地址范圍。

?通過ifconfig 命令可以查看docker0網(wǎng)橋的信息:


?通過docker network inspect bridge 可以查看網(wǎng)橋的子網(wǎng)網(wǎng)絡(luò)范圍和網(wǎng)關(guān):

?2)運(yùn)行容器時(shí),在宿主機(jī)上創(chuàng)建虛擬網(wǎng)卡veth pair設(shè)備,veth


pair設(shè)備是成對(duì)出現(xiàn)的,從而組成一個(gè)數(shù)據(jù)通道,數(shù)據(jù)從一個(gè)設(shè)備進(jìn)入,就會(huì)從另一個(gè)設(shè)備出來。將veth pair設(shè)備的一端放在新創(chuàng)建的容器中,命名為eth0;另一端放在宿主機(jī)的docker0中,以veth為前綴的名字命名。通過 brctl show 命令查看放在docker0中的veth pair設(shè)備

#安裝brctl

[root@xuegod63 ~]# yum install bridge-utils -y

ifconfig


brctl show


2、?外部訪問

bridge的docker0是虛擬出來的網(wǎng)橋,因此無法被外部的網(wǎng)絡(luò)訪問。因此需要在運(yùn)行容器時(shí)通過-p和-P參數(shù)對(duì)將容器的端口映射到宿主機(jī)的端口。實(shí)際上Docker是采用 NAT的 方式,將容器內(nèi)部的服務(wù)監(jiān)聽端口與宿主機(jī)的某一個(gè)端口port 進(jìn)行綁定,使得宿主機(jī)外部可以將網(wǎng)絡(luò)報(bào)文發(fā)送至容器。

1)通過-P參數(shù),將容器的端口映射到宿主機(jī)的隨機(jī)端口:

$ docker run -P {images}

2)通過-p參數(shù),將容器的端口映射到宿主機(jī)的制定端口:

$ docker run -p {hostPort}:{containerPort}{images}


#docker運(yùn)行的時(shí)候指定網(wǎng)絡(luò)模式

--net

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容