docker-compose создание нескольких экземпляров для одного и того же изображения
Мне нужно запустить несколько контейнеров для одного и того же изображения. Если я создаю свой файл compose, как показано ниже, он работает нормально.
version: '2'
services:
app01:
image: app
app02:
image: app
app03:
image: app
app04:
image: app
app05:
image: app
есть ли простой способ для меня упомянуть количество экземпляров для создания вместо копирования и вставки несколько раз?
3 ответов
обновленный ответ (октябрь 2017)
как уже упоминалось, API docker изменился. Я обновляю свой ответ, так как это тот, на который, вероятно, посмотрит большинство людей.
docker-compose up --scale app=5
к сожалению, мы не можем указать это в docker-compose.файл yml в настоящее время (начиная с версии 3.5).
детали:
Они представили scale
опция для версии 2.2 и 2.3 docker-compose, но удалена для версии 3.0. Кроме того, для использования версии 2.2 или 2.3 вам нужно будет загрузить более старую версию инструмента docker-compose. Текущая версия не поддерживает 2.2 или 2.3 (поддерживает 2.0 или 2.1, однако).
Появилась новая С replicas: 5
но это только для режима Рой.
--- Старый Ответ --------------------------------------
docker-compose scale app=5
см.https://docs.docker.com/compose/reference/scale/
тогда вам нужен только этот docker-compose файл
version: '2'
services:
app:
image: app
на scale
команда теперь устарела, вы должны использовать up
вместо.
docker-compose up --scale app=2
подробнее в https://docs.docker.com/compose/reference/up
Вы можете сделать это с помощью replica
Как упоминалось в https://docs.docker.com/compose/compose-file/#replicas
version: '3'
services:
worker:
image: dockersamples/examplevotingapp_worker
networks:
- frontend
- backend
deploy:
mode: replicated
replicas: 6