docker tomcat 与 jmx

docker tomcat 与 jmx

我正在尝试创建一个激活了 tomcat 和 JMX 的 docker 镜像。

所以我克隆了这个 tomcat docker 镜像https://github.com/tutumcloud/tutum-docker-tomcat。我暴露了1099端口,并编辑了运行脚本如下:

#!/bin/bash

if [ ! -f /.tomcat_admin_created ]; then
    /create_tomcat_admin_user.sh
fi

export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 
exec ${CATALINA_HOME}/bin/catalina.sh run

目前我并没有真正考虑安全性,我只是想让 JMX 可用。

接下来构建图像docker build -t <name>并运行它docker run -d -p 8080:8080 -p 1099:1099 <name>

容器正确启动并端口转发:0.0.0.0:1099->1099/tcp, 0.0.0.0:8080->8080/tcp

并且端口是开放的telnet 192.168.59.103 1099。我使用是192.168.59.103因为我在使用 boot2docker 的 macos 上,并且192.168.59.103boot2docker ip

但是当我尝试通过 jconsole 连接到 JMX 时出现超时。

答案1

我找到了解决方案。

我必须声明-Djava.rmi.server.hostname=192.168.59.103

相关内容