我有一个由docker-compose组成的管道,该管道可以编排某些容器(端口8000
上的nginx用于静态资源,并将其他请求路由到在gunicorn上运行django的后端容器)。我正在尝试启动此docker-compose管道的多个实例。我设法找到的唯一抽象是-p option
,它定义了一个基于“项目”名称的标识符。但是,它将无法启动组合管道的另一个实例,因为第一个实例将使用端口8000
。实现此目标的最佳选择是什么?
我不认为replicas
或scale
是我想要的。
我希望能够访问docker-compose实例1的<IP_ADDRESS>:8001
和docker-compose实例2的<IP_ADDRESS>:8002
。这甚至是个好方法吗?
不幸的是,在这种情况下,django应用程序未设计为处理该Web应用程序的多个用户。因此,需要一种用于复用连接并将用户链接到整个docker-compose管道执行的替代策略。
答案 0 :(得分:0)
如果您有Eureka / Zuul,我认为-scale 将是最好的选择,因为它将轮流对您的请求进行负载平衡,并且它所运行的端口无关紧要。
如果要指定端口号,那么我认为您必须手动设置公开端口号,或编写解决方案脚本,以查找序列中的下一个可用端口号。我认为这是一种糟糕的方法。