在Tomcat docker容器中启用JMX

我试图使用docker-compose.yml在tomcat docker-compose.yml镜像上启用JMX,但是我仍然收到VisualVM无法连接到JMX的错误。

  tomcat: image: tomcat:8.0-jre8 environment: CATALINA_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false ports: - "9000:9000" 

JMX需要的不仅仅是一个单一的端口,因为RMI也涉及到。 远程JMX一直是Tomcat的一个挑战,使用Docker基本上可以实现这种“远程”访问。

看看Tomcat的JMX远程生命周期监听器来查看可以设置的端口号,并使用该监听器来设置它们 。 如果你不这样做的话,RMI服务器基本上可以自由的使用它想要使用的任何端口,你不能预测它们。

一旦你设置这些端口,给Docker端口映射,你应该很好去。