重写JMX在Docker WLS容器中的工作方式

我有一个WebLogic泊坞窗容器。 WLSpipe理端口configuration为7001.当我运行容器时,我使用–hostname = [hosts'hostname]并将7001端口暴露在不同的主机端口上,例如使用-p 8001:7001。 我做端口映射的原因是因为我想要在同一个主机上运行多个WLS容器。

我在这个WebLogic上部署了一些应用程序。 这些应用程序使用外部SDK(我不控制)使用JMX(RuntimeServiceMBean的getURL操作)来获取应用程序URL。

这是错误的地方。 该URL以http:// [容器的IP]:7001forms出现。 我想它检索http:// [主机的主机名]:8001 – 即我用来启动容器的主机名和7001映射的端口,即8001。

有没有办法做到这一点?

容器启动后,应在调整AdminServer的外部监听地址后启动WebLogic。 您可以在shell脚本中使用WLST Offline,通过docker run -e KEY = VALUE传递参数,然后从WLST脚本中读取这些参数。 修改您的AdminServer外部监听地址,退出(),然后您可以启动AdminServer。

以下是如何使用适当的外部监听地址创build额外networking通道的示例 。