首页 > 解决方案 > Docker-Compose 在不同端口上运行一个镜像的多个实例

问题描述

我有一个 python 烧瓶应用程序,我想在同一服务器上拥有它的多个实例,每个容器都有自己的输出端口(或 DNS)和依赖项。我使用了 docker-compose,它运行良好。我看到了scalearg 但我认为它对于负载平衡之类没有不同版本的应用程序很有用。我想到的另一个解决方案是为一个应用程序提供多个服务,并在终端中按其名称运行每个实例。

标签: dockerdocker-compose

解决方案


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_app10000100011000210003

我希望我回答了你的问题。


推荐阅读