Docker 的 Network(三)

Docker 的 Network(三)

延續昨天介紹Docker Network 的部份,已經實作了none、container、host、bridge 的模式,今天要來實作的是overlay 網絡模式,這種模式主要是在不同的實體主機內的Container 之間可以互相的溝通,如下圖:

Docker 的 Network(三)

上圖主要是說明 Host1 實體主機裡面有 Container1,然後 Host2 實體主機裡面有 Container2,可以透過 Docker Overlay 的 Network 的模式將 Container1 和 Container2 連接起來做溝通。另外 Consol 是一個存放連線資訊的資料庫,在使用 overlay 時必需要在 Docker 設定,這樣才能存放 overlay 網絡模式的連線資訊。

另外在使用 overlay 網絡模式時,要先確認 Linux Kernel 的版本。目前我使用的版本是 3.19.8 是可以正常執行的。

Example:

使用 Docker Overlay的網絡模式,實作不同的實體主機之間的 container 可以互相的連接,步驟如下:

  1. 切換到 root 使用者,修改 Host1 的 Docker 設定,指令如下:

Docker 的 Network(三)

設定檔如下:

Docker 的 Network(三)

主要的設定就是 cluster-store 和 cluster-advertise,分別是要連接到 consul 的 service,取得 overlay 網絡模式的連線資訊,以及設定可以讓不同實體主機連線的網卡。

2. 重新啟動 Host1 的 Docker Service 指令如下:

Docker 的 Network(三)

3. 在 Host1 使用啟動 docker container 的方式啟動 consul service,指令如下

Docker 的 Network(三)

4. 在 Host1,使用 docker network 指令建立一個 overlay1 的網絡,指令如下

Docker 的 Network(三)

使用 docker network ls,查看建立之後的結果,畫面如下

Docker 的 Network(三)

5. 在 Host1 啟動一個連接到 overlay1 的 container,指令如下

Docker 的 Network(三)

6. 開一個新視窗,到 Host2 修改 Docker 的設定如下

Docker 的 Network(三)

設定如下:

Docker 的 Network(三)

以上的設定和 Host1 是很像的。

7. 在 Host2 上重新啟動 Docker service 指令如下

Docker 的 Network(三)

8. 在 Host2 上,使用 docker network ls 指令確認是否有連到 consol service,畫面如下

Docker 的 Network(三)

9. 在 Host2 上啟動一個 container,並且連到 overlay1 的網絡,指令如下

Docker 的 Network(三)

10. 測試在 container1 ping 到 container2 的 IP

container2 的畫面如下:

Docker 的 Network(三)

container1 的畫面如下:

Docker 的 Network(三)

今天介紹主要是透過 Docker 的 Overlay Network 模式,把不同實體主機上的 Container 連接在一起,這樣就可以把 Container 分散在不同的實體機器上執行。




分享到:


相關文章: