У меня есть 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.


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