Docker运行多个没有--scale的容器实例

时间:2018-10-10 17:59:20

标签: docker docker-compose

我有docker-compose.yml,它正在运行一个简单的Web服务器。我想在启动命令中创建不带--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服务的多个实例。

1 个答案:

答案 0 :(得分:2)

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