docker-compose创建多套服务

时间:2018-07-09 02:56:08

标签: docker docker-compose mattermost

我正在尝试在一台AWS EC2计算机上创建3个mattermost服务。

让我用更多的文字进一步解释:

运行docker-compose up -d时,我得到的服务结构如下:

enter image description here

如何修改与docker相关的脚本,以便创建3套服务?

enter image description here

我已经尝试过docker-compose up --scale app=3 --scale web=3 --scale db=3。但是我找不到任何方法为每个App容器指定不同的端口。

我找到的唯一解决方案是:

  1. 创建3个mattermost-docker文件夹的副本。

  2. 更改App端口和数据库连接信息。

  3. 分别在docker-compose up -dmattermost-docker1mattermost-docker2中运行mattermost-docker3 3次。

但是此解决方案会创建很多重复的文件。我不喜欢。

任何人都知道如何创建3套最重要的服务吗?

2 个答案:

答案 0 :(得分:0)

您需要在docker compose中指定端口范围:

例如,对于10个容器缩放:

version: '3'

services:
  web:
    ...
    ports:
      - "80-90:443"

  app:
    ...
    ports:
      - "8000-8010"

请注意,您不需要更改容器内的端口(443、444、445)。您可以使用相同的容器,并且建议这样做,因为尽管您在端口范围内使用了不同的容器,但是如果它们使用相同的nginx配置,则会更加容易。

答案 1 :(得分:0)

这将使用3个独立的数据库(例如nginx和mongo)启动服务集。

  version: '3'

  services:

    web1:
      container_name: web1
      image: nginx:latest
      ports:
        - 8080:8080

    app1:
      container_name: app1
      image: nginx:latest
      ports:
        - "8081:8081"
    db1:
      container_name: db1
      image: mongo
      ports:
        - 27017

    web2:
      container_name: web2
      image: nginx:latest
      ports:
        - 8082:8082

    app2:
      container_name: app2
      image: nginx:latest
      ports:
        - "8083:8083"
    db2:
      container_name: db2
      image: mongo
      ports:
        - 27018

    web3:
      container_name: web3
      image: nginx:latest
      ports:
        - 8084:8084
    app3:
      container_name: app3
      image: nginx:latest
      ports:
        - "8085:8085"
    db3:
      container_name: db3
      image: mongo
      ports:
        - 27019

本地测试:

NAMES                STATUS                PORTS                                   IMAGE
db2                  Up About a minute     27017/tcp, 0.0.0.0:32803->27018/tcp     mongo
web1                 Up About a minute     80/tcp, 0.0.0.0:32802->8080/tcp         nginx:latest
db1                  Up About a minute     0.0.0.0:32801->27017/tcp                mongo
app1                 Up About a minute     80/tcp, 0.0.0.0:32800->8081/tcp         nginx:latest
app3                 Up About a minute     80/tcp, 0.0.0.0:32798->8085/tcp         nginx:latest
db3                  Up About a minute     27017/tcp, 0.0.0.0:32799->27019/tcp     mongo
app2                 Up About a minute     80/tcp, 0.0.0.0:32797->8083/tcp         nginx:latest
web3                 Up About a minute     80/tcp, 0.0.0.0:32796->8084/tcp         nginx:latest
web2                 Up About a minute     80/tcp, 0.0.0.0:32795->8082/tcp         nginx:latest