【发布时间】:2018-11-20 10:11:38
【问题描述】:
我在 VM 上部署一个 eureka 服务器(比如主机外部 IP 是 a.b.c.d)作为 docker 映像。尝试通过 2 种方式。
1.我在没有明确端口映射的情况下运行 docker 镜像:docker run -p 8671 test/eureka-server 然后运行 docker ps 命令显示端口映射为:0.0.0.0:32769->8761/tcp 尝试使用 http://a.b.c.d:32769 从 VM 外部访问 eureka 服务器,它不可用。
2.我正在运行带有显式端口映射的 docker 映像:docker run -p 8761:8761 test/eureka-server 然后运行 docker ps 命令显示端口映射为:0.0.0.0:8761->8761/tcp 尝试使用 http://a.b.c.d:8761 从 VM 外部访问 eureka 服务器,它可用。
为什么在第一种情况下,即使 docker 分配了随机端口(32769),eureka 服务器也无法从主机外部使用。 是否需要明确的端口映射才能使 docker 应用程序可从外部网络使用?
【问题讨论】:
-
我的第一个问题是,您确定
tcp/32769在您可能拥有的任何防火墙上都对外界开放。您可以尝试显式映射该端口docker run -p 32769:8761 test/eureka-server并尝试访问它吗? -
谢谢。 ..看起来这可能是问题所在。即使显式映射端口 32769:8671,它也不可用。在这种情况下,docker 的动态端口映射只能用于我们知道暴露给外部世界的一系列端口?
标签: docker