docker 4種網路模式

2022-10-09 06:33:11 字數 1210 閱讀 7914

使用--net=bridge指定,docker的預設設定,這種模式建立出來的docker容器鏈結到dcoker網橋上(docker0網橋或者其它自定義的網橋):

1)建立一對虛擬網絡卡(veth pair)

2)賦予其中一塊網絡卡乙個類似「veth65f9」的名字,將其留在宿主機root network namespace中,並繫結到docker網橋上

3)將另一塊網絡卡放入新建立的network namespace中(docker容器中),命名為eth0

4)從docker網橋的子網中選取乙個未使用的ip非配給eth0,並為docker容器設定預設路由,預設閘道器為docker網橋

此模式與外界通訊使用nat協議,增加了通訊的複雜性,在複雜場景下使用會有諸多限制。

使用--net=host指定。docker容器中的程序處於宿主機的網路環境中,相當於docker容器和宿主機公用乙個network namespace,使用宿主機的網絡卡、ip、埠等資訊。但是容器其它方面,如檔案系統、程序列表等還是和宿主機隔離的。

host模式很好地解決了容器與外界通訊的位址轉換問題,可以直接使用宿主機的ip進行通訊,但是也降低了隔離性,同事還會引起網路資源的競爭和衝突。

container模式和host模式類似,指定新建立的容器和已經存在的某個容器共享同乙個network namespace。都是共享network namespace,區別就在於host模式與宿主機共享,而container模式與某個存在的容器共享。新建立的容器不會建立自己的網絡卡,也不配置ip,而是與乙個指定的容器共享ip、埠範圍等。同樣,兩個容器除了網路方面,其它的如檔案系統、程序列表等還是隔離的。

在這種模式下,兩個容器的程序可以通過lo回環網絡卡裝置通訊,增加了容器間通訊的便利性和效率。

container模式的應用場景就在於可以將乙個應用的多格元件放在不同的容器中,這些容器配置為container模式的網路,這樣他們就可以作為乙個整體對外提供服務。同樣,這種模式也降低了容器間的隔離性

這種模式下,docker容器擁有自己的network namespace,但是,並不為docker容器進行任何網路配置。也就是說,這個docker容器除了netwokr namespace自帶的loopback網絡卡外沒有其他任何網絡卡、ip、路由等資訊,需要使用者為docker容器新增網絡卡、配置ip等。

這種模式如果不進行特定的配置是無法正常使用的,但是優點也非常明顯,它給了使用者最大的自由度來自定義容器的網路環境。

--- 以上摘自《docker容器與容器雲》

docker(4)實戰技巧

資料卷 是乙個可供乙個或多個容器使用的特殊目錄,它繞過 ufs,可以提供很多有用的特性 注意 資料卷 的使用,類似於 linux 下對目錄或檔案進行 mount,映象中的被指定為掛載點的目錄中的檔案會隱藏掉,能顯示看的是掛載的 資料卷。解讀容器中的資料不會儲存 預設通過ufs操作容器,會有重複寫的問...

Docker 四種網路模式

我們在使用docker run建立docker容器時,可以用 net選項指定容器的網路模式,docker有以下4種網路模式 host模式,使用 net host指定。container模式,使用 net container name or id指定。none模式,使用 net none指定。brid...

docker的四種網路模式

docker容器間通訊 實現原理 docker使用linux橋接,在宿主機虛擬乙個docker容器網橋 docker0 docker啟動乙個容器時會根據docker網橋的網段分配給容器乙個ip位址,稱為container ip,同時docker網橋是每個容器的預設閘道器。因為在同一宿主機內的容器都接...