docker 通過overlay 構建跨主機聯網通信
阿新 • • 發佈:2019-05-11
scope 加密技術 -o bridge aps 測試 聯網 overlay cli
初始化 swarm
[email protected]:~$ docker swarm init
將當前節點作為manager節點加入swarm
[email protected]:~$ docker swarm join-token manager
創建自定義的overlay 網絡
[email protected]:~$ docker network create -d overlay --attachable my-attachable-overlay
--attachable : 獨立容器也能夠通過該overlay網絡進行通信,如果沒加這個參數,則只能是swam節點的容器才能夠訪問--opt encrypted : 會在 vxlan 層級開啟 IPSEC 加密。這種加密技術會帶來不可忽視的性能損失,因此應該在生產中使用該選項之前對其進行測試
查看網絡配置
[email protected]:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
54b28e557d13 bridge bridge local
a6e93112585e docker_gwbridge bridge local
9720aa482a47 host host local
ascftm9nkzkw ingress overlay swarm
dg93iulbf1hx my-attachable- overlay overlay swarm
1e09aa60ae93 none null local
使用例子, springcloud 中 zuul和eureka 分別獨立一個鏡像並使用overlay啟動容器
[email protected]:~$ docker run -d -p 8761:8761 --net=my-attachable-overlay --name=peacock-eureka 192.168.1.57:5000/peacock-eureka:1.0-SNAPSHOT
[email protected]:~$ docker run -d -p 8100:8100 --net=my-attachable-overlay --name=peacock-zuul 192.168.1.57:5000/peacock-zuul:1.0-SNAPSHOT
先看下zuul中配置eureka地址的配置
server:
tomcat:
basedir: /tmp/tomcatBaseDir
eureka:
instance:
hostname: localhost
client:
serviceUrl:
defaultZone: http://peacock-eureka:8761/eureka/
peacock-eureka 就是上面啟動eureka容器的name, overlay會進行映射
這樣docker就能通過overlay網絡解決docker 容器無法訪問外部網絡或者其他外部宿主機器!!!
docker 通過overlay 構建跨主機聯網通信