Python docker:无法将两个容器端口映射到一个主机端口

Python docker:无法将两个容器端口映射到一个主机端口,python,docker,flask,dockerfile,pm2,Python,Docker,Flask,Dockerfile,Pm2,pm2的app.json(src/app.py为烧瓶app): Dockerfile: EXPOSE 8080 8081 CMD ["pm2", "start", "app.json"] 运行docker时出错: docker run -p 8080:8080 -p 8080:8081 oct20 docker: Error response from daemon: driver failed programming external connectivity on endpoint hig

pm2的app.json(src/app.py为烧瓶app):

Dockerfile:

EXPOSE 8080 8081
CMD ["pm2", "start", "app.json"]
运行docker时出错:

docker run -p 8080:8080 -p 8080:8081 oct20
docker: Error response from daemon: driver failed programming external connectivity on endpoint high_fermi (xxxxxxxxxxx): Bind for 0.0.0.0:8080 failed: port is already allocated.

有什么想法吗?谢谢

您不能让两个东西在主机的一个端口上侦听—无论它们是一个容器中的单独端口,还是两个Docker容器,或者两个其他应用程序。这不是Docker限制,而是操作系统网络堆栈的一部分


如果您在这种情况下可以这样做,主机将在哪里向端口8080发送请求?到容器中的端口8080,或端口8081,或将其多播到两者

你不能让两个东西监听主机中的一个端口,不管它们是一个容器中的单独端口,还是两个Docker容器,或者两个其他应用程序。这不是Docker限制,而是操作系统网络堆栈的一部分


如果您在这种情况下可以这样做,主机将在哪里向端口8080发送请求?到容器中的端口8080,或端口8081,或将其多播到两者

是的,您不能分配端口twice@user2915097如何将两个容器端口映射到一个主机端口?可能吗?您可能想看看HAProxy或其他负载平衡解决方案。是的,您无法分配端口twice@user2915097如何将两个容器端口映射到一个主机端口?可能吗?您可能想看看HAProxy或其他负载平衡解决方案。我想将流量分成两个应用程序(808081)。也许负载平衡器可以帮助我。是的,我会看三个容器-每个应用一个,和。外部流量进入Nginx,应用程序容器不需要暴露任何端口-Nginx容器可以访问同一Docker网络上的容器端口。我想将流量分成两个应用程序(808081)。也许负载平衡器可以帮助我。是的,我会看三个容器-每个应用一个,和。外部流量进入Nginx,应用程序容器不需要公开任何端口-Nginx容器可以访问同一Docker网络上的容器端口。
docker run -p 8080:8080 -p 8080:8081 oct20
docker: Error response from daemon: driver failed programming external connectivity on endpoint high_fermi (xxxxxxxxxxx): Bind for 0.0.0.0:8080 failed: port is already allocated.