1、closed container 封閉式網絡模式
相當于一座孤島,沒有網絡協議棧的通信
使用none模式,Docker容器擁有自己的Network Namespace,但是,并不為Docker容器進行任何網絡配置。也就是說,這個Docker容器沒有網卡、IP、路由等信息,只有lo 網絡接口。需要我們自己為Docker容器添加網卡、配置IP等。
示例圖如下
2、bridged container 橋接式網絡模式
各個容器之間網絡協議棧單獨分離
當 Docker 啟動時,會自動在主機上創建一個 docker0 虛擬網橋,實際上是 Linux 的一個 bridge,可以理解為一個軟件交換機。它會在掛載到它的網口之間進行轉發。
同時,Docker 隨機分配一個本地未占用的私有網段(在 RFC1918 中定義)中的一個地址給 docker0 接口。比如典型的 172.17.42.1,掩碼為 255.255.0.0。此后啟動的容器內的網口也會自動分配一個同一網段(172.17.0.0/16)的地址。
當創建一個 Docker 容器的時候,同時會創建了一對 veth pair 接口(當數據包發送到一個接口時,另外一個接口也可以收到相同的數據包)。這對接口一端在容器內,即 eth0;另一端在本地并被掛載到 docker0 網橋,名稱以 veth 開頭(例如 vethAQI2QT)。通過這種方式,主機可以跟容器通信,容器之間也可以相互通信。Docker 就創建了在主機和所有容器之間一個虛擬共享網絡。
如圖所示,同一個主機的兩個容器之間通過網橋doker0進行通信。(不同之間的主機上的容器通信需要借助overlay網絡,涉及到一些底層協議,單獨寫一篇文章拿出來講)
3、joined container 聯合掛載式網絡模式
容器之間可以共享網絡協議棧,即可以通過套接字來進行通信
這個模式指定新創建的容器和已經存在的一個容器共享一個 Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的 IP,而是和一個指定的容器共享 IP、端口范圍等。同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過 lo 網卡設備通信。
示例如下圖:
4、opentainer container 開放式網絡模式
與主機共享網絡協議棧
Host模式使用是在容器啟動時候指明--network host,此時容器共享宿主機的Network Namespace,容器內啟動的端口直接是宿主機的端口,容器不會創建網卡和IP,直接使用宿主機的網卡和IP,但是容器內的其他資源是隔離的,如文件系統、用戶和用戶組。直接使用宿主機網絡。同樣啟動一個nginx,此時共享主機網絡,根據情況來使用,這樣子也不用做端口轉發,網絡傳輸效率會比較高(思考一下為什么)。
-
接口
+關注
關注
33文章
8882瀏覽量
152946 -
Linux
+關注
關注
87文章
11416瀏覽量
212268 -
Docker
+關注
關注
0文章
501瀏覽量
12524
發布評論請先 登錄
相關推薦
變頻器主要支持哪四種模式?有什么區別?

MSP430F4250的四種模式分別是在什么情況下使用呢?
私藏技術大公開!四種常見供電方案

被問爆的四種供電方式,來啦~

雙軸測徑儀的四種樣式!
濾波電路的四種類型是什么
負反饋的四種類型是什么
負反饋的四種類型及判斷方法
簡述四種基本觸發器及其功能
關于溫補晶振的四種輸出模式詳解

介紹MCUboot支持的四種升級模式(2)

評論