使用 Docker 容器網路
Docker 容器網路概述
要構建具有安全的一致行為的 Web 應用程式,可以使用 Docker 網路特性。根據定義,網路為容器實現了完全隔離。因此,控制您的應用程式所在的網路很重要。Docker 容器網路為您提供了這種控制能力。
本文將概述 Docker 引擎交付原生的預設網路行為,介紹預設建立的網路型別,以及如何建立您自己的、使用者定義的網路。
預設網路
安裝 Docker 時,它會自動建立 3 個網路。可以使用 docker network ls命令列出這些網路。
|
這 3 個網路包含在 Docker 實現中。執行一個容器時,可以使用 the --net標誌指定您希望在哪個網路上執行該容器。您仍然可以使用這 3 個網路。
- bridge 網路表示所有 Docker 安裝中都存在的 docker0 網路。除非使用 docker run --net=<NETWORK>
- none 網路在一個特定於容器的網路堆疊上添加了一個容器。該容器缺少網路介面。
- host 網路在主機網路堆疊上新增一個容器。您可以發現,容器中的網路配置與主機相同。
使用者定義的網路
您可以建立自己的使用者定義網路來更好地隔離容器。Docker 提供了一些預設網路驅動程式來建立這些網路。您可以建立一個新 bridge 網路或覆蓋一個網路。也可以建立一個網路外掛或遠端網路並寫入您自己的規範中。
您可以建立多個網路。可以將容器新增到多個網路。容器僅能在網路內通訊,不能跨網路進行通訊。一個連線到兩個網路的容器可與每個網路中的成員容器進行通訊。當一個容器連線到多個網路時,外部連線通過第一個(按詞典順序)非內部網路提供。
在 Power 上建立一個覆蓋 Docker 網路
Docker 預設情況下會建立一個與 docker0網橋對應的 bridge 網路。您也可以建立自己的網路。docker network命令有許多選項可用來管理網路。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
另外,還可以採用其他一些選項,比如 --subnet、--gateway和 --ip-range。可以使用 docker network – help或 docker network [COMMAND] – help命令檢視更多資訊。
可以通過在建立容器時顯式提及某個網路,從而將該容器連線到該網路。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
也可以動態地將容器連線到網路。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|