我正在努力使用Docker for Mac在Docker容器中运行Tomcat的JMX连接。 我想我了解的基础知识,并具有在tomcat/bin目录中setenv.sh看起来像这样:使用适用于Mac的Docker连接JMX
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连接到本地主机:9999(该Docker for Mac将路由到实际上在172.17.0.2的容器)我得到的错误: 无法连接到localhost:9999使用服务:jmx:rmi: /// jndi/rmi:// localhost:9999/jmxrmi
有什么不对的提示?
您正在谈论码头工具箱/码头机。 DOCKER_HOST未在Docker for Mac中使用。作者询问“Docker for Mac” –
@AndrewJamesRamirez,谢谢。我正在使用工具箱,并有一点错误的方向。将纠正这一点 –