我有一个简单的应用程序,它在端口4567上有rest,并在j弹性云中的码头容器中运行它。现在我想把4567端口转发到外部世界。当我在本地运行码头时,我可以这样做: docker运行-d -p 4567:4567 -ti myapp /bin/bash
但是,在没有外部IP的情况下,如何才能在弹性的情况下做到这一点呢?我也尝试过使用弹性端点,但是端口不可用。此外,还发现了一些关于j弹性文档的信息:“如果您的Docker容器没有附加外部IP,J弹性将执行自动端口重定向。这意味着,如果应用程序在TCP级别上侦听自定义端口,J弹性将尝试自动检测它并将所有传入请求转发到该端口号。因此,在大多数情况下,您的被篡改的应用程序或服务将在创建后立即在相应的节点域下通过Internet访问。”
要构建码头形象,我使用Dockerfile,它有“公开4567”字段。
发布于 2017-02-21 14:03:50
@Catalina
请注意,没有必要在j弹性中公开端口,因为它使用的是PCS 基于容器的虚拟化,与本地Docker容器的实现相比,它在技术上更先进:它具有对自然虚拟主机路由网络适配器的内置支持。
默认情况下,J弹性会自动检测端口,这些端口是由应用程序在适当的Docker映像设置中预定义的,并应用所需的重定向,以确保容器在部署后的可访问性。

让我们解释哪些端口正在侦听共享负载均衡器 (SLB),并且可以转发到容器:
80 -> HTTP
8080 -> HTTP
8686 -> HTTP
8443 -> SSL
4848 (玻璃鱼管理) -> SSL
4949 (野蝇管理) -> HTTP
7979 (进出口功能) -> SSL
在这种情况下,当您想要指定另一个端口而不是由自动重定向功能选择时,可以通过在环境中指定JELASTIC_EXPOSE 码头变量设置巫师来指定所需的端口。
应该使用JELASTIC_EXPOSE变量,并尽可能使用以下值:
https://stackoverflow.com/questions/42367870
复制相似问题