Jelastic与Docker的端口转发

我有一个简单的应用程序,它在4567端口上有restAPI,并在我的docker容器中运行在jelastic云中。 现在我想转发端口4567到外部世界。 当我在本地运行docker工人时,可以这样做: docker run -d -p 4567:4567 -ti myapp / bin / bash
但是,我怎样才能做到这一点在没有外部IP的jelastic? 我也尝试使用jelastic端点,但端口不可用。 还发现了一些关于jelastic的文档的信息:“ 如果你的Docker容器没有连接外部IP,Jelastic会执行一个自动的端口redirect,这意味着如果应用程序在TCP级别上侦听一个自定义的端口,Jelastic会尝试自动检测它并将所有传入的请求转发到此端口号,因此,在大多数情况下,您的dockerized应用程序或服务将在创build后在相应节点的域中通过Internet可用。
要构builddocker镜像,我使用Dockerfile,它有“EXPOSE 4567”字段。

@Catalina,

请注意,Jelastic中没有必要公开端口,因为它使用基于 PCS 容器的虚拟化技术,与本地Docker容器的实现相比,技术更先进:它具有内置的自然虚拟主机路由networking适配器。

默认情况下,Jelastic会自动检测预定义的端口,以便在适当的Docker镜像设置中被应用程序监听,并且在部署之后应用所需的redirect以确保容器的可访问性。

Jelastic与Docker的端口转发

让我们来解释哪些端口正在共享负载均衡器 (SLB)上侦听并可以被转发到容器:

80 – > HTTP

8080 – > HTTP

8686 – > HTTP

8443 – > SSL

4848 (glassfish admin) – > SSL

4949 (wildfly admin) – > HTTP

7979 (导入/导出function) – > SSL

如果要指定另一个端口而不是自动redirectfunctionselect,可以通过在环境设置向导中指定JELASTIC_EXPOSE docker variables来指定所需的端口。

应该使用JELASTIC_EXPOSEvariables,尽可能使用以下值:

  • 0或DISABLED或FALSE – 禁用自动redirect
  • 一个在1-65535范围内的数字 – 定义所需的端口来设置相应的redirect

此外,您可以通过端点映射所需的专用端口(可通过共享LB访问),并将您的服务绑定到收到的地址和共享端口。