docker - Docker-Compose 在不同端口上运行一个镜像的多个实例
问题描述
我有一个 python 烧瓶应用程序,我想在同一服务器上拥有它的多个实例,每个容器都有自己的输出端口(或 DNS)和依赖项。我使用了 docker-compose,它运行良好。我看到了scale
arg 但我认为它对于负载平衡之类没有不同版本的应用程序很有用。我想到的另一个解决方案是为一个应用程序提供多个服务,并在终端中按其名称运行每个实例。
解决方案
该docker-compose scale
命令已弃用,文档建议您使用docker-compose up --scale SERVICE=NUM
. 但是在指定扩展端口时必须小心。如果您尝试将容器放在端口80
五次,则五个中有四个将失败 - 端口已经被占用。但是有一个解决方案。
我刚刚测试了这种方法,它奏效了。这是docker-compose.yml
我测试的:
version: '3.7'
services:
test_app:
image: <my_custom_image>
ports:
- 10000-10003:80
然后我运行它并在四个不同(但事先指定)端口上docker-compose up --scale test_app=4
部署了 4 个实例: 、和.test_app
10000
10001
10002
10003
我希望我回答了你的问题。
推荐阅读
- java - 从 MostSignificantBits 和 LeastSignificantBits 创建 UUID
- python - 有什么方法可以加速 Pandas 中的文件读/写?
- database - 数据库中基于角色的身份验证控制的实际用途是什么?
- arduino-uno - 使用 ESP8266 从 URL 读取值
- git - GitLab CI:合并请求被接受后获取源分支
- wso2 - WSO2 APIM 将文件存储在 gov 注册表中
- python-3.x - 我试图做到这一点,所以当用户输入某个或多个单词时,它会打开谷歌但无法弄清楚
- html - 使用 VBA 将 Excel 内容复制到网页表中
- angular - 过滤一个可观察的数组
- excel - 将Excel中每一行的Excel转换为XML格式