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