Docker 多主機網路通訊詳細介紹

2022-09-25 16:39:09 字數 2281 閱讀 7068

docker多主機網路通訊詳解

docnoibhvcker支援多主機網路通訊功能,可以通過命令列建立多主機通訊網路。本文使用docker machine和consul服務發現工具來講解這一點。

前提是需要先安裝docker工具箱。

1、docker multi-host networking

作為乙個示例,我們會在virtualbox虛擬機器上使用docker machine建立3個docker主機。其中乙個docker主機執行consul服務發現工具,另外兩個docker主機則通過第一台主機的consul服務發現容器共享網路資訊。

docker容器網路部分的相信資訊可檢視:

consul的詳細資訊見: 

consul的特性:

1)服務發現

consul使得服務註冊和服務發現變得很簡單

2)故障檢測

支援對服務的健康檢查,防止請求被路由到服務不可用的主機上

3)支援多資料中心

consul支援多資料中心,無需複雜的配置

4)鍵值儲存

consul使用了鍵值儲存來支援動態配置等

2、設定多主機網路

1)建立名為「host1-consul」的docker主機

docker-machine create -d virtualbox host1-consul

2)在「host1-consul」主機上執行consul容器

docker $(docker-machine config host1-consul) run -d -p "8500:8500" -h"consul" progrium/consul -server -bootstrap

3)驗證上述容器的執行狀態

docker $(docker-machine config host1-consul) ps

4)執行第二個docker主機,並註冊到前面的consul容器

docker-machine create -d virtualbox  --engine-opt="cluster-store=consul://$(docker-machine ip host1-consul):8500" --engine-opt="cluster-advertise=eth1:0" host2

5)執行第三個docker主機

docker-machine create -d virtualbox  --engine-opt="cluster-store=consul://$(docker-machine ip host1-consul):8500" --程式設計客棧engine-opt="cluster-advertise=eth1:0" host3

現在,後面兩個docker主機都有預設的網路配置,且只能用於單個主機的通訊。

6)要實現多主機網路通訊,還需要在主機2上建立乙個覆蓋網路

docker $(docker-machine config host2) network create -d 程式設計客棧overlay myapp

7)ok,此時如果在主機3上檢查網路,就可以看到主機2上建立的覆蓋網路。這是因為主機2和3都註冊到consul,網路資訊在所有已註冊的主機之間實現了共享。

docker $(docker-machine config host2) network ls

dockcnoibhver $(docker-machine config host3) network ls

如果是在不同的主機上執行容器,可能就需要使用容器名來連線它們。我們可以這樣做個測試。

在主機2上執行乙個nginx容器,在主機3上執行乙個busybox容器,通過busybox容器**nginx容器預設頁面來測試連線是否正常。

8)在主機2上執行nginx容器,並指定建立的「myapp」網路

docker $(docker-machine config host2) run -itd --name=webfront --net=myapp nginx

9)驗證nginx容器的執行

docker $(docker-machine config host2) ps

10)在主機3上執行乙個busybox容器,使用引數**主機2的nginx容器的預設主頁。

如果結果返回的是html內容的輸出,意味著容器能夠使用之前建立的覆蓋網路連線到主機。

本文標題: docker 多主機網路通訊詳細介紹

本文位址: /jiqiao/fuwuqi/167064.html

Docker多主機網路通訊詳解

docker支援多主機網路通訊功能,可以通過命令列建立多主機通訊網路。本文使用docker machine和consul服務發現工具來講解這一點。前提是需要先安裝docker工具箱。作為乙個示例,我們會在virtualbox虛擬機器上使用docker machine建立3個docker主機。其中乙個...

Docker 多主機通訊

docker多主機通訊 為docker容器指定自定義網段的固定 ip 靜態 ip位址 第一步 建立自定義網路 備註 這裡選取了172.172.0.0網段,也可以指定其他任意空閒的網段 docker network create subnet 172.172.0.0 16 docker ice 注 d...

docker網路通訊機制

docker 中網路通訊機制以及網橋的使用 網路配置0.docker容器間的通訊,docker允許通過外部訪問容器互聯的方式來提供網路服務 1.docker容器網路通訊機制 2.docker 網路使用一般在使用docker網橋 bridge 實現容器與容器通訊的時候,都是站在乙個應用的角度進行容器通...