2016-08-09 113 views
1

我試圖在使用docker-compose.yml的tomcat docker鏡像上啓用JMX,但我仍然收到VisualVM無法連接到JMX的錯誤。在Tomcat Docker容器中啓用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" 
+0

在tomcat服務器啓動後你能看到9000端口是否打開? – 11thdimension

+0

是的,它是開放的,我使用'nmap'來檢查它 –

回答

1

由於涉及RMI,JMX不僅僅需要一個端口。遠程JMX一直是Tomcat的一個挑戰,使用Docker基本上實現了這種「遠程」訪問。

看看Tomcat的JMX Remote Lifecycle Listener看到可以設置的端口號,並且使用那個監聽器來設置它們。如果你不這樣做,RMI服務器基本上可以自由使用它想要使用的任何端口,並且你無法預測它們。

一旦你設置了這些端口,給Docker端口映射,你應該很好去。

相關問題