新聞中心
當(dāng)你開(kāi)始大規(guī)模使用Docker時(shí),你會(huì)發(fā)現(xiàn)需要了解很多關(guān)于網(wǎng)絡(luò)的知識(shí)。Docker作為目前最火的輕量級(jí)容器技術(shù),有很多令人稱道的功能,如Docker的鏡像管理。然而,Docker同樣有著很多不完善的地方,網(wǎng)絡(luò)方面就是Docker比較薄弱的部分。因此,我們有必要深入了解Docker的網(wǎng)絡(luò)知識(shí),以滿足更高的網(wǎng)絡(luò)需求,本篇文章為大家簡(jiǎn)單介紹一下Docker的網(wǎng)絡(luò)基礎(chǔ)知識(shí)

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為成都酒樓設(shè)計(jì)等企業(yè)提供專業(yè)服務(wù)。
網(wǎng)絡(luò)
docker提供幾種網(wǎng)絡(luò),它決定容器之是以及外界和容器之間怎么樣去通信。
可以通過(guò)如下方法查看docker的網(wǎng)絡(luò):
docker network ls
null:無(wú)網(wǎng)絡(luò),使用這種網(wǎng)絡(luò)的容器會(huì)完全隔離
host:主機(jī)網(wǎng)絡(luò),使用這種網(wǎng)絡(luò)的容器會(huì)使用主機(jī)的網(wǎng)絡(luò),這種網(wǎng)絡(luò)對(duì)外界是完全開(kāi)放的,能夠訪問(wèn)到主機(jī),就能訪問(wèn)到容器
bridge:橋接網(wǎng)絡(luò),除非創(chuàng)建容器的時(shí)候指定網(wǎng)絡(luò),否則容器默認(rèn)使用橋接網(wǎng)絡(luò)。屬于這個(gè)網(wǎng)絡(luò)的容器之間可以相互通信,不過(guò)外界想要訪問(wèn)這個(gè)網(wǎng)絡(luò)的容器,需要使用橋接網(wǎng)絡(luò),有點(diǎn)兒像主機(jī)和容器之間的一座橋,對(duì)容器有一定的隔離作用
bridge網(wǎng)絡(luò)
查看bridge網(wǎng)絡(luò)信息:
docker network inspect bridge
會(huì)列出bridge網(wǎng)絡(luò)的相關(guān)信息,containers表示使用了這網(wǎng)絡(luò)的容器。
創(chuàng)建一個(gè)使用bridge網(wǎng)絡(luò)的容器:
docker run -d --name web1 --net bridge nginx
none網(wǎng)絡(luò)
創(chuàng)建一個(gè)使用none網(wǎng)絡(luò)的容器:
docker run -d --name web_none --net none nginx
查看none網(wǎng)絡(luò)信息:
docker network inspect none
host網(wǎng)絡(luò)
創(chuàng)建一個(gè)使用host網(wǎng)絡(luò)的容器:
docker run -d --name web_host -net host nginx
可以看到該容器沒(méi)有IP地址,因?yàn)樗苯邮褂盟拗鳈C(jī)IP地址
端口
如果想讓外界可以訪問(wèn)到基于bridge網(wǎng)絡(luò)創(chuàng)建的容器提供的服務(wù),則必須要告訴docker要使用的端口。
可以通過(guò)如下方法查看鏡像會(huì)使用哪些端口:
docker inspect nginx | jq .[]."ContainerConfig"."ExposedPorts"
端口綁定
在創(chuàng)建容器的時(shí)候可以指定這個(gè)容器的端口與主機(jī)端口的映射關(guān)系:
docker run -d --name web -p 8888:80 nginx
-p,–publis: 可以指定主機(jī)與容器的端口關(guān)系,冒號(hào)左邊是主機(jī)的端口,右邊是映射到容器中的端口
-P:該參數(shù)會(huì)分配鏡像中所有的會(huì)使用的端口,并映射到主機(jī)上的隨機(jī)端口
查看容器的端口情況:
docker port web
如果創(chuàng)建容器時(shí),-p參數(shù)后面只一個(gè)指定端口,意思是主機(jī)會(huì)隨機(jī)一個(gè)端口,映射到容器的該指定端口:
docker run -d --name web -p 80 nginx
自定義網(wǎng)絡(luò)
可以基于某一個(gè)類型的網(wǎng)絡(luò)去創(chuàng)建一些自定義的網(wǎng)絡(luò),這樣屬于這個(gè)網(wǎng)絡(luò)的容器就可以單獨(dú)隔離出來(lái),它們之間可以相互通信,而不在這個(gè)網(wǎng)絡(luò)的容器就不能直接訪問(wèn)到它們。一個(gè)容器可以屬于多個(gè)網(wǎng)絡(luò),同一個(gè)自定義網(wǎng)絡(luò)下的容器可以通過(guò)各自的容器名訪問(wèn)到對(duì)方,因?yàn)闀?huì)使用到docker內(nèi)嵌的一個(gè)dns功能。
創(chuàng)建一個(gè)自定義網(wǎng)絡(luò):
docker network create --driver bridge custom #--driver用于指定網(wǎng)絡(luò)類型
可以通過(guò)docker network ls 查看到新創(chuàng)建的custom網(wǎng)絡(luò)相關(guān)信息,Subnet表示這個(gè)網(wǎng)絡(luò)下的子網(wǎng)IP段,那么基于custom自定義網(wǎng)絡(luò)創(chuàng)建的容器IP都會(huì)以該IP段開(kāi)頭。
基于custom網(wǎng)絡(luò)創(chuàng)建容器:
docker run -d --name web2 --net custom nginx
如果想將已經(jīng)創(chuàng)建的容器放到自定義網(wǎng)絡(luò)中,使用如下指令:
docker network connect custom web
將web從bridge網(wǎng)絡(luò)中移除:
docker network disconnect bridge web
分享名稱:Docker的網(wǎng)絡(luò)基礎(chǔ)知識(shí)講解
轉(zhuǎn)載源于:http://m.fisionsoft.com.cn/article/dheipgi.html


咨詢
建站咨詢
