Docker Swarm - сопоставление портов и масштабирование

В настоящее время я использую Docker Engine 1.11 и изучаю возможность перехода на Docker 1.12 и использования Swarm. В настоящее время я использую Docker для запуска более 50 агентов Bamboo, каждый из которых должен иметь порт, сопоставленный с портом на сервере. Например, у каждого контейнера докеров должен быть доступный порт 4000, поэтому, когда я запускаю Docker, я делаю:

Docker run -p 10000:4000 myimg
Docker run -p 10001:4000 myimg
Docker run -p 10002:4000 myimg
Docker run -p 10003:4000 myimg

В Docker Swarm, насколько я понимаю, я бы выполнил следующую команду, чтобы масштабировать свой сервис до 50 контейнеров.

docker service scale helloworld=5

Но если бы я сделал это, то все они пытались бы подключиться к одному и тому же порту. Как я могу этого добиться? Является ли это возможным?


person PolarisUser    schedule 09.08.2016    source источник
comment
Обратите внимание, что вы можете выполнить обновление до 1.12, продолжая использовать Docker, как в 1.11, без использования новых функций режима Swarm. Если у вас есть службы, которые могут использовать новый режим Swarm, они могут работать на тех же серверах.   -  person BMitch    schedule 09.08.2016


Ответы (1)


Нет, не можешь.

Это всего лишь одна ключевая функция, которую предоставляет служба Docker: один порт может быть сопоставлен с несколькими контейнерами (обнаружение службы).

И еще один - когда контейнер выходит из строя, рой начинает новый (самовосстановление).

Я ничего не знаю о Bamboo, поэтому не могу сказать вам, есть ли способ запустить службу bamboo в режиме роя.

person xdays    schedule 09.08.2016
comment
Фактически это база данных в контейнере, которой нужен доступный порт. Спасибо за ответ! Надеюсь, эта функция появится. Было бы неплохо просто масштабировать порт, отображаемый по одному для каждого экземпляра или что-то в этом роде. - person PolarisUser; 09.08.2016