Docker-Compose запускает несколько экземпляров одного изображения в разных портах - PullRequest
0 голосов
/ 27 октября 2018

У меня есть приложение-фляга Python, и я хочу, чтобы на одном сервере было несколько его экземпляров, каждый контейнер имеет собственный порт вывода (или DNS) и зависимости.Я использовал docker-compose, и он работает хорошо.Я видел scale arg, но я думаю, что это хорошо для балансировки нагрузки, когда у вас нет другой версии приложения.Другое решение, которое мне пришло в голову, - это иметь несколько служб для одного приложения и запускать каждый экземпляр по имени в терминале.

1 Ответ

0 голосов
/ 27 октября 2018

Команда docker-compose scale устарела, и в документах предлагается использовать docker-compose up --scale SERVICE=NUM. Но вы должны быть осторожны при указании портов для масштабирования. Если вы попытаетесь поместить свои контейнеры в порт 80 пять раз, четыре из пяти выйдут из строя - порт будет уже занят. Но есть решение.

Я только что проверил этот подход, и он работал. Вот docker-compose.yml я проверял:

version: '3.7'
services:
  test_app:
    image: <my_custom_image>
    ports:
      - 10000-10003:80

Затем я запустил его с docker-compose up --scale test_app=4, и он развернул 4 экземпляра test_app на четырех разных (но указанных заранее) портах: 10000, 10001, 10002 и 10003.

Надеюсь, я ответил на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...