如何在运行基于Corretto的映像的Docker中访问JMX接口?

问题描述

类似于How to connect to Java instances running on EC2 using JMXHow to access JMX interface in docker from outside?,但特别是对于Amazon Corretto JDK,我想通过JMX使用VisualVM连接到tomcat:8.5.57-jdk11-corretto

我在我的自定义启动脚本中写了这部分内容,其中包含JMX_ADDRESS: "host.docker.internal:38880"

if [ "$JMX_ADDRESS" ]
then
  IFS=':' read -r -a array <<< "$JMX_ADDRESS"
  CATALINA_OPTS=$(cat <<-EOF
      $CATALINA_OPTS
      -Dcom.sun.management.jmxremote.rmi.port=${array[1]}
      -Dcom.sun.management.jmxremote=true
      -Dcom.sun.management.jmxremote.port=${array[1]}
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.authenticate=false
      -Dcom.sun.management.jmxremote.local.only=false
      -Djava.rmi.server.hostname=${array[0]}
EOF
)
fi

CATALINA_OPTS=$(echo $CATALINA_OPTS)
export CATALINA_OPTS
if [ $JPDA_ADDRESS ]
then
  exec catalina.sh jpda run
else
  exec catalina.sh run
fi

这适用于标准的openjdk,但不适用于Corretto。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)