无法将JMX连接到在远程主机上的Docker中运行的Java应用

时间:2019-07-11 11:39:36

标签: java docker jmx

假设我的本地网络中有一台服务器,其IP为192.168.100.10。 Java应用程序在其中运行了Docker容器。 现在我想从我的IP地址为192.168.100.20的计算机上使用VisualVM连接到该Java应用程序。我以为我已正确配置了所有内容,但仍然无法正常工作。

我已经通过了以下JVM选项:

   -Dcom.sun.management.jmxremote"
   -Dcom.sun.management.jmxremote.port=9010"
   -Dcom.sun.management.jmxremote.authenticate=false"
   -Dcom.sun.management.jmxremote.ssl=false"
   -Dcom.sun.management.jmxremote.local.only=false"
   -Dcom.sun.management.jmxremote.rmi.port=9010"
   -Djava.rmi.server.hostname=192.168.100.10"

然后我在Dockerfile中公开了端口9010:

EXPOSE 9010

然后将该端口添加到docker-compose:

    ports:
      - "9010:9010"

我正在尝试通过本地计算机上的JConsole或VisualVM连接到远程主机。在JConsole的“远程进程”输入中,我输入了“ 192.168.100.10:9010”,但连接失败并出现以下错误: “与192.168.100.10:9010的连接未成功。您要重试吗?”

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

以上解决方案已经足够并且可以正常工作。我一直在使用env变量来设置无法正常工作的端口号。