我需要将Java应用程序运行到几个Docker容器中,以隔离它们的执行。
这个应用程序侦听端口12345,我用“-p 12345:5000”运行我的docker容器,将端口12345(从Docker容器)重定向到我的主机的端口5000。它工作正常。
但是当我使用“-p 12345:50001”运行另一个Docker容器时,出现错误“绑定0.0.0.0:12345失败:端口已经分配。”
我不明白为什么......谢谢:)
答案 0 :(得分:5)
您已经混淆了主机端口和容器端口!
主机端口首先出现,必须是唯一的。容器端口排在第二位。如果你的java应用程序都在容器中的同一个端口上运行,你可能想要这样的东西:
"-p 12345:50000"
"-p 12346:50000"
或者如果他们真的暴露了容器中的不同端口:
"-p 12345:50000"
"-p 12346:50001"