我正在尝试在一台AWS EC2计算机上创建3个mattermost服务。
让我用更多的文字进一步解释:
运行docker-compose up -d
时,我得到的服务结构如下:
如何修改与docker相关的脚本,以便创建3套服务?
我已经尝试过docker-compose up --scale app=3 --scale web=3 --scale db=3
。但是我找不到任何方法为每个App
容器指定不同的端口。
我找到的唯一解决方案是:
创建3个mattermost-docker
文件夹的副本。
更改App
端口和数据库连接信息。
分别在docker-compose up -d
,mattermost-docker1
和mattermost-docker2
中运行mattermost-docker3
3次。
但是此解决方案会创建很多重复的文件。我不喜欢。
任何人都知道如何创建3套最重要的服务吗?
答案 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