国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

Docker 多主機網絡通信詳細介紹

2024-09-01 13:48:37
字體:
來源:轉載
供稿:網友

最近做項目是關于Docker 的網絡通信,需要多個主機進行鏈接通信,這里記錄下,以后便于項目開發,大家需要的話也可以看下,少走些彎路。

Docker多主機網絡通信詳解             

Docker支持多主機網絡通信功能,可以通過命令行建立多主機通信網絡。本文使用Docker machine和Consul服務發現工具來講解這一點。

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

1、Docker Multi-Host Networking

作為一個示例,我們會在VirtualBox虛擬機上使用docker machine創建3個Docker主機。其中一個Docker主機運行Consul服務發現工具,另外兩個Docker主機則通過第一臺主機的Consul服務發現容器共享網絡信息。

Docker容器網絡部分的相信信息可查看:
https://docs.docker.com/engine/userguide/networking/dockernetworks/
Consul的詳細信息見: https://www.consul.io/

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
docker $(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容器的默認主頁。

docker $(docker-machine config host3) run -it --rm --net=myapp busybox wget -qO- http://webfront

如果結果返回的是HTML內容的輸出,意味著容器能夠使用之前創建的覆蓋網絡連接到主機。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长汀县| 新蔡县| 乡宁县| 江源县| 萨迦县| 增城市| 吉水县| 岑巩县| 永登县| 湖口县| 类乌齐县| 宾阳县| 潜山县| 东山县| 河北省| 登封市| 永德县| 汝城县| 北宁市| 厦门市| 太仓市| 镇远县| 化德县| 万宁市| 华安县| 浦东新区| 登封市| 永平县| 西充县| 石楼县| 东阳市| 红原县| 宜城市| 长乐市| 婺源县| 潞城市| 阿拉尔市| 志丹县| 竹溪县| 东明县| 华宁县|