无法通过jconsole连接到docker容器中的jmx jar进程

问题描述 投票:0回答:1

我正在尝试从docker容器中运行的java进程中检索指标。该过程是使用以下命令启动的,但尝试通过jconsole作为测试访问它,导致“连接失败”重试?

docker run -d --name=process-2-kafka --restart=always -p 22222:22222 -v 
/var/local/Blogs_Services/ProcessKafaka/:/program -w /program openjdk:8 
java
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=22222 - 
Dcom.sun.management.jmxremote.ssl=false - 
Dcom.sun.management.jmxremote.authenticate=false -jar testkafka.jar - 
Dcom.sun.management.jmxremote.local.only=false – 
Djava.rmi.server.hostname=192.www.xxx.yy – 
Dcom.sun.management.jmxremote.rmi.port=22222

我在搜索互联网后添加了rmi.port和server.hostname但仍导致相同的错误。有人有解决方案吗?

java docker jmx
1个回答
1
投票

JMX与容器的连接非常令人沮丧。我建议尝试两件事:

  1. jmxremote.portjmxremote.rmi.port使用一个单独的端口(例如22222和22223)并在docker中移植这两个端口
  2. java.rmi.server.hostname设置为名称,例如dockerhost,并将dockerhost和托管容器的计算机的IP地址添加到运行docker容器,docker容器本身以及运行jconsole的计算机的所有计算机上的hosts文件中上。然后,当您尝试使用JMX时,请在URL中使用dockerhost而不是IP地址。

这些可能无法解决你的问题,但手指交叉,祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.