与jmx的docker工人tomcat

我正在尝试创build一个tomcat和JMX激活docker的形象。

所以我克隆这个tomcat泊坞窗图像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。

接下来构build图像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 : 0.0.0.0:1099->1099/tcp, 0.0.0.0:8080->8080/tcp / 0.0.0.0:1099->1099/tcp, 0.0.0.0:8080->8080/tcp : 0.0.0.0:1099->1099/tcp, 0.0.0.0:8080->8080/tcp

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

但是当我试图通过jconsole连接到JMX,我得到一个超时..

我find了解决scheme

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