【问题标题】:VisualVM unable to connect remote tomcat in docker with RMIVisualVM无法使用RMI连接docker中的远程tomcat
【发布时间】:2015-03-13 10:41:46
【问题描述】:

我正在远程机器上的 docker 容器中运行 tomcat。现在我想用 VisualVM 来连接。我的 docker 启动命令:

docker run -d --name tomcat -p 26000:8080 -p 9090:9090 -p 9091:9091 -v /data/docker/tomcat/webapps:/data/tomcat/webapps -v /data/docker/tomcat/logs:/data/tomcat/logs -e CATALINA_OPTS="-Xms2048M -Xmx2048M -XX:MaxPermSize=256M -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090  -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1"  my.private.hub/tomcat:latest

还有 catalina.log:

13-Mar-2015 10:29:56.615 INFO [Thread-10] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-apr-8080"]
13-Mar-2015 10:29:56.666 INFO [Thread-10] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-apr-8009"]
13-Mar-2015 10:29:56.718 INFO [Thread-10] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-apr-8080"]
13-Mar-2015 10:29:56.718 INFO [Thread-10] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-apr-8009"]
13-Mar-2015 10:31:01.787 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.0.20
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Feb 15 2015 18:10:42 UTC
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.0.20.0
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.13.0-40-generic
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-7-oracle/jre
13-Mar-2015 10:31:01.789 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.7.0_76-b13
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /data/tomcat
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /data/tomcat
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/data/tomcat/conf/logging.properties
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
13-Mar-2015 10:31:01.790 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms2048M
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx2048M
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:MaxPermSize=256M
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=true
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=9090
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/data/tomcat/endorsed
13-Mar-2015 10:31:01.791 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/data/tomcat
13-Mar-2015 10:31:01.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/data/tomcat
13-Mar-2015 10:31:01.792 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/data/tomcat/temp
13-Mar-2015 10:31:01.792 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.1.32 using APR version 1.5.1.

但 VisuamVM 无法连接:

'Cannot connect using service:jmx:rmi:///jndi/rmi://192.168.0.119:9090/jmxrmi'

其中 192.168.0.119 是远程主机的地址。

【问题讨论】:

    标签: java tomcat docker visualvm


    【解决方案1】:

    这个

    -Djava.rmi.server.hostname=127.0.0.1

    应该使用你用来连接它的 docker 主机 ip

    -Djava.rmi.server.hostname=192.168.0.119

    【讨论】:

      【解决方案2】:

      我试过Marco's answer (also answered here) 但没办法。

      最后我可以使用SSH tunnel 进行连接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-09
        相关资源
        最近更新 更多