Внутренние компоненты докера, использующие IP-адрес из пула IP-адресов пользователя - PullRequest
0 голосов
/ 23 ноября 2018
Docker version 18.09.0, build 4d60db4
OS VERSION : Centos 7

Постановка проблемы: -

У меня есть главный компьютер и рабочий компьютер в одной локальной сети.Оба связаны утилитой docker-machine.Предполагается, что на рабочей машине будет работать 3 автономных контейнера для zookeeper.Я создал оверлейную сеть Docker на своем главном компьютере, используя - 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, проверяю 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-адрес, требуемый моими компонентами, из-за этого происходит полное сбой автоматического развертывания.Хуже всего то, что IP-адрес lb-my-network меняется, он продолжает конфликтовать с IP-адресом других контейнеров.

Ожидается ли это?Если да, то как я могу развернуть несколько контейнеров, используя автоматизацию, когда докер использует IP-адреса случайным образом из пула, зарезервированного логикой пользователя.

В документации указано, что докеру нужно три адреса для егорабочий, сетевой адрес, широковещательный адрес и адрес шлюза, поэтому пользователь может использовать 253 адреса в подсети / 24.Но здесь lb-my-network использует IP-адрес из пула, который, как ожидается, будет использоваться контейнерами пользователя.

Помощь будет оценена.

...