美文网首页java jvmdockerDocker容器
docker 循环依赖的网络设置

docker 循环依赖的网络设置

作者: 不想当码农的程序员 | 来源:发表于2017-09-29 20:04 被阅读110次

    在Eureka中, 使用docker 部署高可用的时候,就会出现 容器之间 循环依赖

    解决方案很多, 这里使用 网络桥接设置

    compose的方式如下

    
    version: "2"
    services:
      peer1:      # 默认情况下,其他服务可以使用服务名称连接到该服务。因此,对于peer2的节点,它需要连接http://peer1:8761/eureka/,因此需要配置该服务的名称是peer1。
        image: itmuch/microservice-discovery-eureka-ha:0.0.1-SNAPSHOT
        networks: 
          - eureka-net
        ports:
          - "8761:8761"
        environment:
          - spring.profiles.active=peer1
      peer2:
        image: itmuch/microservice-discovery-eureka-ha:0.0.1-SNAPSHOT
        hostname: peer2
        networks: 
          - eureka-net
        ports:
          - "8762:8762"
        environment:
          - spring.profiles.active=peer2
    networks:
      eureka-net:
        driver: bridge
    

    如果不想使用compose 可用这样
    1 、创建一个桥接网络

    $ docker network create -d bridge --subnet 172.25.0.0/16 isolated_nw
    
    06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8
    

    2、把容器加入网络,重启下容器

    $ docker network connect isolated_nw container2
    
    $ docker network inspect isolated_nw
    
    [
        {
            "Name": "isolated_nw",
            "Id": "06a62f1c73c4e3107c0f555b7a5f163309827bfbbf999840166065a8f35455a8",
            "Scope": "local",
            "Driver": "bridge",
            "IPAM": {
                "Driver": "default",
                "Config": [
                    {
                        "Subnet": "172.25.0.0/16",
                        "Gateway": "172.25.0.1/16"
                    }
                ]
            },
            "Containers": {
                "90e1f3ec71caf82ae776a827e0712a68a110a3f175954e5bd4222fd142ac9428": {
                    "Name": "container2",
                    "EndpointID": "11cedac1810e864d6b1589d92da12af66203879ab89f4ccd8c8fdaa9b1c48b1d",
                    "MacAddress": "02:42:ac:19:00:02",
                    "IPv4Address": "172.25.0.2/16",
                    "IPv6Address": ""
                }
            },
            "Options": {}
        }]
    

    3、或者run的时候设置网络

    $ docker run --network=isolated_nw --ip=172.25.3.3 -itd --name=container3 busybox
    
    467a7863c3f0277ef8e661b38427737f28099b61fa55622d6c30fb288d88c551
    

    我的官网http://guan2ye.com

    `HIEG6K~YKSS1}K%H{6Q7%6.png

    我的CSDN地址http://blog.csdn.net/chenjianandiyi
    我的简书地址http://www.jianshu.com/u/9b5d1921ce34
    我的githubhttps://github.com/javanan
    我的码云地址https://gitee.com/jamen/

    博客小福利: 阿里云优惠券300元用一年https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=vf2b5zld&utm_source=vf2b5zld

    相关文章

      网友评论

        本文标题:docker 循环依赖的网络设置

        本文链接:https://www.haomeiwen.com/subject/bzkwextx.html