zoukankan      html  css  js  c++  java
  • docker 通过overlay 构建跨主机联网通信

      初始化 swarm

    meiya@meiya:~$ docker swarm init

      将当前节点作为manager节点加入swarm

    meiya@meiya:~$ docker swarm join-token manager

      创建自定义的overlay 网络

    meiya@meiya:~$ docker network create -d overlay --attachable my-attachable-overlay
    --attachable : 独立容器也能够通过该overlay网络进行通信,如果没加这个参数,则只能是swam节点的容器才能够访问
    --opt encrypted : 会在 vxlan 层级开启 IPSEC 加密。这种加密技术会带来不可忽视的性能损失,因此应该在生产中使用该选项之前对其进行测试

    查看网络配置

    meiya@meiya:~$ 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启动容器
    meiya@meiya:~$ docker run -d -p 8761:8761 --net=my-attachable-overlay --name=peacock-eureka  192.168.1.57:5000/peacock-eureka:1.0-SNAPSHOT
    meiya@meiya:~$ 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 容器无法访问外部网络或者其他外部宿主机器!!!
  • 相关阅读:
    秋季总结
    PTA第一个编程题总结
    秋季学习总结
    人生路上对我影响最大的三位老师
    自我介绍
    真实的我——自我介绍
    学习总结
    寒假编程总结三
    寒假编程总结二
    寒假编程总结一
  • 原文地址:https://www.cnblogs.com/xiaojf/p/10849532.html
Copyright © 2011-2022 走看看