4

我正在尝试在 1 台 AWS EC2 机器上创建 3项最重要的服务。

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

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

在此处输入图像描述

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

在此处输入图像描述

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

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

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

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

  3. 分别在、和中运行docker-compose up -d3 次。mattermost-docker1mattermost-docker2mattermost-docker3

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

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

4

2 回答 2

0

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

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

version: '3'

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

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

请注意,您不需要更改容器内的端口(443、444、445)。您可以使用相同的,而且推荐使用,因为尽管您在端口范围内使用不同的容器,但如果它们使用相同的 nginx 配置会更容易。

于 2018-07-09T07:25:19.697 回答
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
于 2018-07-10T02:44:31.533 回答