如何在可用端口上公开多个docker-compose管道?

时间:2019-01-15 22:08:25

标签: docker docker-compose

我有一个由docker-compose组成的管道,该管道可以编排某些容器(端口8000上的nginx用于静态资源,并将其他请求路由到在gunicorn上运行django的后端容器)。我正在尝试启动此docker-compose管道的多个实例。我设法找到的唯一抽象是-p option,它定义了一个基于“项目”名称的标识符。但是,它将无法启动组合管道的另一个实例,因为第一个实例将使用端口8000。实现此目标的最佳选择是什么?

我不认为replicasscale是我想要的。

我希望能够访问docker-compose实例1的<IP_ADDRESS>:8001和docker-compose实例2的<IP_ADDRESS>:8002。这甚至是个好方法吗?

不幸的是,在这种情况下,django应用程序未设计为处理该Web应用程序的多个用户。因此,需要一种用于复用连接并将用户链接到整个docker-compose管道执行的替代策略。

1 个答案:

答案 0 :(得分:0)

如果您有Eureka / Zuul,我认为-scale 将是最好的选择,因为它将轮流对您的请求进行负载平衡,并且它所运行的端口无关紧要。

如果要指定端口号,那么我认为您必须手动设置公开端口号,或编写解决方案脚本,以查找序列中的下一个可用端口号。我认为这是一种糟糕的方法。