Docker内部人员使用用户IP地址池中的IP地址

时间:2018-11-23 04:33:26

标签: docker docker-swarm docker-machine

Docker version 18.09.0, build 4d60db4
OS VERSION : Centos 7

问题陈述:-

我在同一LAN上有一台主计算机和一台工作计算机。两者都通过docker-machine实用程序连接。预计该工作计算机将运行3个zookeeper独立容器。我在主机上使用-创建了一个docker overlay网络 docker network create --attachable --subnet 200.184.152.0/24 --gateway 200.184.152.254 --driver overlay my network 我想按如下方式将Zookeeper容器与固定IP地址绑定:-

zoo1 : 200.184.152.2 zoo2: 200.184.152.3 zoo3: 200.184.152.4

使用以下命令移至工作计算机的外壳后:

eval $(docker-machine env worker-1)

我运行了Zookeeper的第一个实例zoo1: 200.184.152.2。它成功运行。 然后,我尝试运行第二个Zookeeper实例zoo2: 200.184.152.3,但是它没有出现网络错误。

然后我使用docker network检查网络,然后在worker机器上检查my-network,并在容器部分显示结果:-

"Containers": {
            "1a2471c777c907dc05bb0f23e819919354669de699f862e4fdc093293d145b31": {
                "Name": "zoo1",
                "EndpointID": "8bb5eebd1cacf36dc7cdad7fc3d72c45047c66b455c568cc9e8911d2121fd8d6",
                "MacAddress": "02:42:c8:b8:98:02",
                "IPv4Address": "200.184.152.2/24",
                "IPv6Address": ""
            },
            "lb-my-network": {
                "Name": "my-network-endpoint",
                "EndpointID": "8f747b26e921ee1543631b758b7dfaf8c7e820c47a95849608dc3568f9957e79",
                "MacAddress": "02:42:c8:b8:98:03",
                "IPv4Address": "200.184.152.3/24",
                "IPv6Address": ""
            }
        },

此lb-my-network使用的是我的组件所需的IP地址,因此,整个自动部署失败。最糟糕的是,lb-my-network的IP地址更改与其他容器的IP地址保持冲突。

这是预期的吗?如果是,那么当docker从用户逻辑保留的池中随机使用IP地址时,如何使用自动化部署多个容器。

在文档中,码头工人需要使用三个地址,一个网络地址,一个广播地址和一个网关地址,因此/ 24子网中的用户可以使用253个地址。但是这里lb-my-network使用的是预期由用户的容器使用的池中的IP地址。

我们将不胜感激。

0 个答案:

没有答案