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 實現容器與容器通訊的時候,都是站在乙個應用的角度進行容器通...