天天看點

docker 網絡模型

1. bridge

橋接模式,也是容器預設的模式;容器有自己的Network NameSpace,docker會自動為容器配置網絡棧

docker在主控端上預設建立一個docker0的網橋,docker0根據Mac位址學習将資料轉發到不同的端口

Veth Pair:Veth Pair裝置被建立後,總是以虛拟網卡的形式成對出現,從其中一個虛拟網卡發出的資料可以直接出現在另一個網卡上,即使兩張網卡在不同的Network NameSpace

docker容器被建立後,會建立一對 Veth Pair,一個在容器内部,一個在主控端上,這樣資料就可以在容器哥主控端之間傳輸

統一主控端上的容器通信流程:

容器A将資料發送到eth0(Veth Pair中在容器内的一端),然後資料直接出現在主控端上的另一端(Veth Pair中在主控端的一端),然後資料再轉發到docker0網橋,然後找到對應的容器B的位址,将資料轉發到容器B的Veth Pair裝置在主控端上的一端,然後資料直接出現在容器B内部對應的虛拟網卡上

2. none

容器有自己的Network NameSpace,docker不會為容器配置網絡棧,需要使用者自己配置網絡棧

3. host

主控端模式,容器直接使用主控端的網絡模式,容器直接監聽主控端上對應的端口

4. join-container

容器加入其它容器,使用其他容器的網絡棧;k8s中的pod就是使用這種模式,pod先建立一個infra容器,pod内定義的容器都加入infra容器,NameSpace級别的配置和資料卷所有容器共享

如果文章對您有所幫助,可以點一下推薦哦