Cloud Foundry:如何在Docker映像中重新映射暴露的端口?

问题描述 投票:0回答:1

我想使用组织的Cloud Foundry服务运行RabbitMQ服务。我检查了RabbitMQ码头工人镜像,发现暴露了以下端口:

 "ExposedPorts": {
                "25672/tcp": {},
                "4369/tcp": {},
                "5671/tcp": {},
                "5672/tcp": {}
            },

我通过如下将其安装到Cloud Foundry中来启动该应用程序:cf push -o rabbitmq RabbitMQ -u process

该应用已安装并开始运行。但是,它正在侦听端口5672。CF服务仅允许我使用10000和10999之间的端口。因此,我进入CF门户,删除HTTP路由,并在10123端口上为Rabbitmq应用程序创建了新的TCP路由。

如何使用CF CLI将端口10123(外部)映射到端口5672(RabbitMQ,内部)?

cloudfoundry
1个回答
2
投票

具有将具有特定外部端口的路由映射到特定内部应用程序端口的功能。在此处的文档中对此进行了描述。

https://docs.cloudfoundry.org/devguide/custom-ports.html#procedure

目前,cf cli不直接支持该功能,因此您需要使用cf curl手动发送一些请求。

一般流程是这个。

  1. 获取应用程序的向导。
  2. 为您的应用程序配置端口列表,cf curl /v2/apps/APP-GUID -X PUT -d '{"ports": [25672, 4369, 5671, 5672]}'
  3. 使用cf map-route my-app example.com --port 10123将TCP路由映射到您的应用程序。
  4. 获取您的TCP路由的路由guid。运行cf curl /v2/routes?q=host:example.com
  5. 使用cf curl /v2/route_mappings -X POST -d '{"app_guid": "APP-GUID from #1", "route_guid": "ROUTE-GUID from #4", "app_port": 5672}'更新路由映射
  6. (对于其他端口,可选地重复3-5。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.