【问题标题】:Port forwarding in Jelastic with Docker使用 Docker 在 Jelastic 中进行端口转发
【发布时间】:2017-02-21 12:52:33
【问题描述】:

我有一个简单的应用程序,它在端口 4567 上有 rest api,并在我的 jelastic 云中的 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”字段。

【问题讨论】:

    标签: docker dockerfile jelastic


    【解决方案1】:

    @卡特琳娜,

    注意Jelastic不需要暴露端口,因为它使用PCScontainer-based virtualization,相比原生Docker容器的实现技术更先进:它内置了对自然虚拟主机的支持——路由网络适配器。

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

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

    80 -> HTTP

    8080 -> HTTP

    8686 -> HTTP

    8443 -> SSL

    4848(glassfish 管理员)-> SSL

    4949(wildfly 管理员)-> HTTP

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

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

    应使用

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-14
      • 2020-11-19
      • 2021-08-02
      • 2015-06-08
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2012-07-02
      相关资源
      最近更新 更多