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

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


咨詢
建站咨詢
