覆盖JMX在Docker WLS容器中的工作方式

时间:2015-03-22 15:06:08

标签: weblogic docker jmx

我有一个WebLogic docker容器。 WLS管理端口配置为7001.当我运行容器时,我使用--hostname = [hosts'例如,使用-p 8001:7001在不同的主机端口公开7001端口。我进行端口映射的原因是因为我想在同一主机上运行多个WLS容器。

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

这是它出错的地方。该网址为http://[container的IP]:7001。我希望它能够检索http://[hosts' hostname]:8001 - 即我用来启动容器的主机名和7001映射的端口,即8001。

有没有办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

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

Here's an example关于如何使用适当的外部侦听地址创建额外的网络通道。