我正在努力使用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,謝謝。我正在使用工具箱,並有一點錯誤的方向。將糾正這一點 –