Можете ли вы динамически создавать несколько экземпляров docker-compose?

#docker #docker-compose

#docker #docker-compose

Вопрос:

Я хотел бы знать, есть ли какой-либо способ динамического запуска нескольких экземпляров одного и того же docker-compose.

То есть, чтобы добавить новый экземпляр, вам не нужно останавливать или перезапускать другие, которые уже запущены. Также заранее неизвестно, сколько экземпляров потребуется.

Очевидно, что доступные порты будут разными в каждом экземпляре, например, в следующем файле конфигурации отображается временный порт:

 version: '3'
  services:
    nginx:
      image: nginx:latest
      volumes:
        - /home/USER/nginx-configuration:/etc/nginx
      ports:
        - 80
  

Я нашел --scale параметр в соответствии с официальной документацией, но он не позволяет выполнять его динамически.

Комментарии:

1. Я думаю, вам нужно попробовать docker swarm вместо этого для вашей цели, где вы можете увеличивать и / или уменьшать экземпляры ваших сервисов.

2. Вы могли бы запустить несколько копий всего файла Compose, если вы задали $COMPOSE_PROJECT_NAME отдельно для каждого из них, убедились, что не указали фиксированные имена, такие как container_name: , и позаботились о файлах, подключенных к привязке, и сопоставлениях портов; но вы не можете легко запускать несколько идентичных копий отдельных сервисов (без Swarm или другого более сложного инструмента).

3. @GauravAgarwal возможно ли создать более одного экземпляра стека в docker swarm с различными конфигурациями (например, порт)?

4. @itasahobby Я не знаю, возможно ли это. Хотя вы могли бы создать одно и то же изображение с тем же файлом Dockerfile (но с другим именем изображения) и указать другой порт для его контейнера.