1. 程式人生 > >docker 通過overlay 構建跨主機聯網通信

docker 通過overlay 構建跨主機聯網通信

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 構建跨主機聯網通信