新聞中心
清晰明了:docker的四種網(wǎng)絡(luò)模式
作者:Devops部落 2019-10-23 05:08:55
云計算
網(wǎng)絡(luò)管理 使用none模式,Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說,這個Docker容器沒有網(wǎng)卡、IP、路由等信息,只有l(wèi)o 網(wǎng)絡(luò)接口。

為城固等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及城固網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站制作、城固網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
1. closed container 封閉式網(wǎng)絡(luò)模式
相當(dāng)于一座孤島,沒有網(wǎng)絡(luò)協(xié)議棧的通信
使用none模式,Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進(jìn)行任何網(wǎng)絡(luò)配置。也就是說,這個Docker容器沒有網(wǎng)卡、IP、路由等信息,只有l(wèi)o 網(wǎng)絡(luò)接口。需要我們自己為Docker容器添加網(wǎng)卡、配置IP等。
示例圖如下:
2. bridged container 橋接式網(wǎng)絡(luò)模式
各個容器之間網(wǎng)絡(luò)協(xié)議棧單獨分離
當(dāng) Docker 啟動時,會自動在主機上創(chuàng)建一個 docker0 虛擬網(wǎng)橋,實際上是 Linux 的一個 bridge,可以理解為一個軟件交換機。它會在掛載到它的網(wǎng)口之間進(jìn)行轉(zhuǎn)發(fā)。
同時,Docker 隨機分配一個本地未占用的私有網(wǎng)段(在 RFC1918 中定義)中的一個地址給 docker0 接口。比如典型的 172.17.42.1,掩碼為 255.255.0.0。此后啟動的容器內(nèi)的網(wǎng)口也會自動分配一個同一網(wǎng)段(172.17.0.0/16)的地址。
當(dāng)創(chuàng)建一個 Docker 容器的時候,同時會創(chuàng)建了一對 veth pair 接口(當(dāng)數(shù)據(jù)包發(fā)送到一個接口時,另外一個接口也可以收到相同的數(shù)據(jù)包)。這對接口一端在容器內(nèi),即 eth0;另一端在本地并被掛載到 docker0 網(wǎng)橋,名稱以 veth 開頭(例如 vethAQI2QT)。通過這種方式,主機可以跟容器通信,容器之間也可以相互通信。Docker 就創(chuàng)建了在主機和所有容器之間一個虛擬共享網(wǎng)絡(luò)。
如圖所示,同一個主機的兩個容器之間通過網(wǎng)橋doker0進(jìn)行通信。(不同之間的主機上的容器通信需要借助overlay網(wǎng)絡(luò),涉及到一些底層協(xié)議,單獨寫一篇文章拿出來講)
3. joined container 聯(lián)合掛載式網(wǎng)絡(luò)模式
容器之間可以共享網(wǎng)絡(luò)協(xié)議棧,即可以通過套接字來進(jìn)行通信
這個模式指定新創(chuàng)建的容器和已經(jīng)存在的一個容器共享一個 Network Namespace,而不是和宿主機共享。新創(chuàng)建的容器不會創(chuàng)建自己的網(wǎng)卡,配置自己的 IP,而是和一個指定的容器共享 IP、端口范圍等。同樣,兩個容器除了網(wǎng)絡(luò)方面,其他的如文件系統(tǒng)、進(jìn)程列表等還是隔離的。兩個容器的進(jìn)程可以通過 lo 網(wǎng)卡設(shè)備通信。
示例如下圖:
4. opentainer container 開放式網(wǎng)絡(luò)模式
與主機共享網(wǎng)絡(luò)協(xié)議棧
Host模式使用是在容器啟動時候指明--network host,此時容器共享宿主機的Network Namespace,容器內(nèi)啟動的端口直接是宿主機的端口,容器不會創(chuàng)建網(wǎng)卡和IP,直接使用宿主機的網(wǎng)卡和IP,但是容器內(nèi)的其他資源是隔離的,如文件系統(tǒng)、用戶和用戶組。直接使用宿主機網(wǎng)絡(luò)。同樣啟動一個nginx,此時共享主機網(wǎng)絡(luò),根據(jù)情況來使用,這樣子也不用做端口轉(zhuǎn)發(fā),網(wǎng)絡(luò)傳輸效率會比較高(思考一下為什么)。
網(wǎng)站名稱:清晰明了:Docker的四種網(wǎng)絡(luò)模式
文章鏈接:http://fisionsoft.com.cn/article/djsiojg.html


咨詢
建站咨詢
