java - 无法将 jmx 连接到远程主机上 docker 中运行的 java 应用程序

标签 java docker jmx

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

我已经传递了这些 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 的连接未成功。您想重试吗?”

我做错了什么?

最佳答案

上面的解决方案已经足够并且有效。我一直在使用环境变量来设置端口号,但它无法正常工作。

关于java - 无法将 jmx 连接到远程主机上 docker 中运行的 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988339/

相关文章:

java - JDialog 调整大小时不剪切底部面板

docker - 使用 node-sass 和 docker-compose

docker - 当 docker 主机重启时会发生什么?

node.js - 当我制作图像时,我的 docker 命令在 wget 上失败

jmx - 如何使用自定义 JMX 身份验证

java - 如果车辆可用则返回信息

java正则表达式查找所有.txt

java - 有条件地忽略 Jackson 的原始类型字段

jmx - JVisualVM 的日志输出

jmx - JMX 的有趣指标