Docker запускает несколько экземпляров контейнера без --scale

У меня есть docker-compose.yml, на котором работает простой веб-сервер. Я хочу создать несколько экземпляров контейнера без --scaling в команде запуска. Вот как я сейчас запускаю несколько экземпляров контейнера docker-composer up -d --scale appserver=2.

В идеале я бы хотел поместить какую-то инструкцию в docker-compose.yml, чтобы сделать это. Ниже приведен пример файла docker-compose.yml.

version: '3'
services:
  appserver:
    image: nimmis/apache
  haproxy:
    image: eeacms/haproxy
    ports:
      - '80:5000'
      - '1936:1936'
    environment:
      BACKENDS: 'appserver_1:80 appserver_2:80 appserver_3:80'
      DNS_ENABLED: 'true'
      LOG_LEVEL: info

Обратите внимание, что я пытаюсь использовать только несколько экземпляров службы appserver.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
996
1

Ответы 1

Docker compose не поддерживает раздел deploy, но если вы переключитесь в режим Swarm с одним узлом (так же просто, как запуск docker swarm init), вы можете развернуть его с помощью:

docker stack deploy -c docker-compose.yml stack_name

используя следующий yaml:

version: '3'
services:
  appserver:
    image: nimmis/apache
    deploy:
      replicas: 2
  haproxy:
    image: eeacms/haproxy
    ports:
      - '80:5000'
      - '1936:1936'
    environment:
      BACKENDS: 'appserver_1:80 appserver_2:80 appserver_3:80'
      DNS_ENABLED: 'true'
      LOG_LEVEL: info

Другие вопросы по теме