使用Docker在Jelastic端口转发

时间:2017-02-21 12:52:33

标签: docker dockerfile jelastic

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

1 个答案:

答案 0 :(得分:1)

@Catalina,

请注意,不需要在Jelastic中公开端口,因为它使用PCS container-based virtualization,与原生Docker容器的实现相比,它在技术上更先进:它具有内置的自然虚拟虚拟支持主机路由的网络适配器。

默认情况下,Jelastic会自动检测预定义为由相应Docker镜像设置中的应用程序监听的端口,并应用所需的重定向以确保在部署后立即访问容器。

Port forwarding in Jelastic with Docker

让我们解释哪些端口正在监听Shared Load Balancer(SLB)并可以转发到容器:

80 - > HTTP

8080 - > HTTP

8686 - > HTTP

8443 - > SSL

4848 (glassfish admin) - > SSL

4949 (wildfly admin) - > HTTP

7979 (导入/导出功能) - > SSL

如果您想指定另一个端口而不是通过自动重定向功能选择,您可以通过在环境设置docker variable中指定 JELASTIC_EXPOSE wizard来执行此操作指定所需的端口。

应使用

JELASTIC_EXPOSE 变量,并尽可能使用以下值:

  • 0 或DISABLED或FALSE - 禁用自动重定向
  • 1-65535 范围内的数字 - 定义设置相应重定向所需的端口

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