【发布时间】:2017-08-08 18:04:31
【问题描述】:
我正在努力设置与使用 Docker for Mac 的 Docker 容器中运行的 Tomcat 的 JMX 连接。 我想我了解基础知识,并且在 tomcat/bin 目录中有一个 setenv.sh,如下所示:
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true\
-Dcom.sun.management.jmxremote.local.only=false\
-Dcom.sun.management.jmxremote.authenticate=false\
-Dcom.sun.management.jmxremote.ssl=false\
-Djava.rmi.server.hostname=185.83.15.228\
-Dcom.sun.management.jmxremote.port=9999\
-Dcom.sun.management.jmxremote.rmi.port=9999"
我认为有问题的部分可能是 java.rmi.server.hostname 属性。我已将其设置为主机的 IP,但我也尝试了其他明显的事情。我相信这应该是运行 jconsole 或 jvisualvm 的机器的 IP,但这对我不起作用。
我这样启动容器:
docker run -d -v /Users/timbo/tomcat-jmx.sh:/usr/local/tomcat/bin/setenv.sh -p 8080:8080 -p 9999:9999 tomcat:8.0
所以端口 9999 被暴露。 当我尝试使用 jvisualvm 连接到 localhost:9999(Docker for Mac 将路由到实际上位于 172.17.0.2 上的容器)进行连接时,我收到错误消息: 无法使用服务连接到 localhost:9999:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi
有什么错误提示吗?
【问题讨论】: