#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 (но с другим именем изображения) и указать другой порт для его контейнера.