在绑定docker-compose.yml中的主机端口时,无法将服务扩展到多个容器

微服务在一个容器上运行。 我已经将该服务绑定到主机端口8082并使用docker-compose启动了此微服务。 现在我想使用docker-compose scale命令将其扩展到3个容器,但它给了我下面的错误 –

错误:for 2未能在networking上创build端点composetest_nginx_2 composetest_default:绑定0.0.0.0:8082失败:端口已分配

错误:for 3未能在networking上创build端点composetest_nginx_3 composetest_default:绑定为0.0.0.0:8082失败:端口已分配

这将是什么解决scheme?

您不应该将3个容器的端口绑定到主机中的同一端口。

你可以做的是build立:

  • 1个负载均衡器容器(将容器的端口XXXX绑定到主机的端口8082)

  • 3个服务容器(将端口暴露给负载平衡器)

bind只绑定1个端口到主机。 只公开端口到链接的容器,以便它们可以来自多个容器。

参考:

https://www.brianchristner.io/how-to-scale-a-docker-container-with-docker-compose/

https://github.com/vegasbrianc/docker-compose-demo/blob/master/docker-compose.yml