[英]docker-compose creating multiple set of services
我正在尝试在一台AWS EC2计算机上创建3个最重要的服务。
让我用更多的文字进一步解释:
当我运行docker-compose up -d
,我得到一个服务,其结构如下:
如何修改与docker相关的脚本,以便创建3套服务?
我已经尝试过docker-compose up --scale app=3 --scale web=3 --scale db=3
。 但是我找不到任何方法为每个App
容器指定不同的端口。
我发现的唯一解决方案是:
创建3个mattermost-docker
文件夹副本。
更改App
端口和数据库连接信息。
分别在mattermost-docker1
, mattermost-docker2
和mattermost-docker3
运行mattermost-docker1
docker-compose up -d
3次。
但是此解决方案会创建很多重复的文件。 我不喜欢
有谁知道如何创建3套最重要的服务?
您需要在docker compose中指定端口范围:
例如,对于10个容器缩放比例:
version: '3'
services:
web:
...
ports:
- "80-90:443"
app:
...
ports:
- "8000-8010"
请注意,您不需要更改容器内的端口(443、444、445)。 您可以使用相同的容器,并且建议您这样做,因为尽管您在端口范围内使用了不同的容器,但是如果它们使用相同的nginx配置,则会更加容易。
这将使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.