Docker網路詳解之Overlay

2021-08-30 02:17:47 字數 1152 閱讀 8932

我們在上篇文章說了docker在單個docker daemon(即是單主機)模式下面的時候網路預設為bridge,既然提到了單個docker daemon,那麼多主機即是集群的模式的情況下呢?在這種模式下docker預設使用overlay網路來進行容器間的通訊。

接下來我們看看我們在加入乙個集群或者初始化乙個集群的時候會發生什麼事情,下面這段話來自官方文件:

首先乙個名ingress的overlay網路被建立,這樣在你沒有指定網路的情況下你的集群中的services(你可以理解為乙個container,實際上它為多個重複的container,是集群中的乙個概念)會自動連線到這個網路。這樣集群中的services通過這個網路進行通訊。

然後乙個名叫docker_gwbridge的網橋被建立,這個網橋用來連線在這個網路中的docker daemon

所以由以上可知,邏輯上我們都處於乙個叫ingress的overlay網路上,實際上docker daemon之間的通訊還是通過乙個叫docker_gwbridge的網橋進行的。每個services或者container同時能夠加入很多個網路,但是它們只能和連線在同乙個網路上的其他service或者container進行通訊。

當我們要建立乙個overlay網路的時候有幾個前提:

必須要開啟必要的埠讓網路能進行通訊,比如必須開啟2377埠的tcp、7946埠的tcp和udp以及4789埠udp,這都是進行通訊必要的

在你建立你自己的overlay網路之前,你必須加入乙個集群或者是初始化乙個集群

準備工作做好後,我們用$ docker network create -d overlay your-overlaynetwork-name來建立你的overlay網路,如果你想自己配置關於網路的ip位址範圍、子網、閘道器或者其他選項,你能通過新增--attachable來進行配置

在預設的情況,overlay網路中的services進行通訊是通過aes加密演算法過的,並且集群中的管理節點會每12小時對這個加密秘鑰進行更改。當你想在你自己的overlay網路中應用加密演算法,你能通過--opt encrypted命令來開啟加密,但是注意,windows上的docker daemon不支援加密

Docker網路詳解之Bridge

docker網路有四種模式,bridge是docker預設的配置。下面是docker官網對於bridge模式的解釋 對於docker來說,網橋模式使用乙個網橋來允許連線在同乙個網橋上的容器進行通訊,同時它使得沒有連線在同乙個網橋上的容器隔離開。bridge模式在主機上自動配置規則從而使得連線不同網橋...

Docker網路詳解

先關閉docker sudo service docker stop 關閉網橋docker0 新增自己的網橋bridge0 sudo ifconfig docker0 down sudo brctl addbr bridge0 sudo ifconfig bridge0 192.168.227.1 ...

Docker網路詳解

docker使用linux橋接,在主機虛擬乙個docker0網路介面,在主機中執行命令檢視 list host bridges sudo brctl show bridge name bridge idstp enabled inte ces docker0 8000.000000000000 no...