Docker-compose создание нескольких экземпляров для одного и того же изображения

Мне нужно запустить несколько контейнеров для одного и того же изображения. Если я создаю свой файл компоновки, как показано ниже, он отлично работает.

version: '2'

services:
  app01:
    image: app
  app02:
    image: app
  app03:
    image: app
  app04:
    image: app
  app05:
    image: app  

Есть ли какой-нибудь простой способ указать количество экземпляров для компоновки вместо копирования и вставки несколько раз?

Ответы

Ответ 1

Обновленный ответ (октябрь 2017 г.)

Как уже упоминалось, интерфейс докера изменился. Я обновляю свой ответ, поскольку на него, вероятно, будет смотреть большинство людей.

docker-compose up -d --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). Также есть новый раздел deploy с replicas: 5 но только для режима роя.

--- Старый ответ --------------------------------------

docker-compose scale app=5

См. Https://docs.docker.com/compose/reference/scale/.

Тогда вам нужен только этот файл docker-compose

version: '2'

services:
  app:
    image: app

Ответ 3

Вы можете сделать это с 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