• 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 容器无法访问外部网络或者其他外部宿主机器!!!
  • 相关阅读:
    最小生成树之 Prim 算法
    Linux通过ps命令找到进程并kill当前进程
    M6G2C Cortex®A7工控核心板SIMCOM4G模块移植流程
    Spring事件监听机制源码解析
    Pytorch损失函数总结
    目标检测任务理解与总结
    [炼丹术]EfficientDet训练模型学习总结
    [炼丹术]DeepLabv3+训练模型学习总结
    可视化经典模型的对比实验总结
    基于COCO数据集验证的目标检测算法天梯排行榜
  • 原文地址:https://www.cnblogs.com/xiaojf/p/10849532.html
Copyright © 2020-2023  润新知