我正在尝试从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但仍导致相同的错误。有人有解决方案吗?
JMX与容器的连接非常令人沮丧。我建议尝试两件事:
jmxremote.port
和jmxremote.rmi.port
使用一个单独的端口(例如22222和22223)并在docker中移植这两个端口java.rmi.server.hostname
设置为名称,例如dockerhost
,并将dockerhost
和托管容器的计算机的IP地址添加到运行docker容器,docker容器本身以及运行jconsole的计算机的所有计算机上的hosts文件中上。然后,当您尝试使用JMX时,请在URL中使用dockerhost
而不是IP地址。这些可能无法解决你的问题,但手指交叉,祝你好运!