jconsole监控远程docker环境中tomcat容器的JVM,无法连接

1.Docker环境
宿主机:192.168.1.100
Tomcat容器:
映射端口:9000:9000

配置:
JAVA_OPTS=" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

本地客户机-->cmd-->jconsole.exe-->弹出“Java监视和管理控制台”-->选择“远程进程”,输入192.168.1.100:9000-->点击连接
提示“连接失败,是否重试!”


注:虚拟机环境下
虚拟机:192.168.1.105
端口:9000
同样的配置,jconsole可以正常连接 192.168.1.105:9000

15回答

priestpriest  系统架构师 , None
可以进行远程监控显示全部

可以进行远程监控

收起
 2018-03-02
浏览657
deat_sighdeat_sigh  软件开发工程师 , IT
我尝试了另外一种方法:在docker启动的时候,加入设置docker run -i -t -p 8200:8080 -p 9090:9090 --name model_test -e CATALINA_OPTS="-Djava.rmi.server.hostname=10.255.30.114 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.m...显示全部

我尝试了另外一种方法:
在docker启动的时候,加入设置
docker run -i -t -p 8200:8080
-p 9090:9090
--name model_test
-e CATALINA_OPTS="-Djava.rmi.server.hostname=10.255.30.114
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.rmi.port=9090"
-d model:2.3
其实就是使用-e参数,将需要的环境打入.然后在远程的时候输入9090端口,就可以正常连接了。

收起
 2017-12-06
浏览729
macan789macan789  测试工程师 , evada
@sprewellkobe    telnet 192.168.1.100 9000  返回黑屏,端口正常显示全部
@sprewellkobe    telnet 192.168.1.100 9000  返回黑屏,端口正常收起
 2015-09-10
浏览916
macan789macan789  测试工程师 , evada
@玫瑰结,你的qq多少,能联系你请教下吗?急着使用jconsole,非常感谢显示全部
@玫瑰结,你的qq多少,能联系你请教下吗?急着使用jconsole,非常感谢收起
 2015-09-10
浏览904
macan789macan789  测试工程师 , evada
@玫瑰结,你有试过,可以是吗?显示全部
@玫瑰结,你有试过,可以是吗?收起
 2015-09-10
浏览1536
丛磊丛磊  副总经理/副总裁 , 白山云科技
telnet 端口返回的错误是什么显示全部
telnet 端口返回的错误是什么收起
 2015-09-09
浏览4821
玫瑰结玫瑰结  网站架构师 , it教育基金
可以的啊。。。显示全部
可以的啊。。。收起
 2015-09-09
浏览4543
macan789macan789  测试工程师 , evada
上面文章提到的“想使用jconsole,它依赖于JMX功能,JMX因为要使用RMI又需要网络。使用Docker的话就不是很直接,需要一些技巧去开启所需端口”不知道具体方法是什么?显示全部
上面文章提到的“想使用jconsole,它依赖于JMX功能,JMX因为要使用RMI又需要网络。使用Docker的话就不是很直接,需要一些技巧去开启所需端口”不知道具体方法是什么?收起
 2015-09-09
浏览4703
macan789macan789  测试工程师 , evada
浏览4564
macan789macan789  测试工程师 , evada
从Java角度看Docker在Java开发人员中已经有些应用。Docker的某些特性让我们更容易构建可扩展的上下文。不像uber-jar,Docker可以帮助你将所有的依赖(包括JVM!)打包到一个随时可发布的镜像里。这是Docker吸引广大开发人员的重要特性。但是,这也会带来一些隐患。一般来说,程序员...显示全部
从Java角度看

Docker在Java开发人员中已经有些应用。Docker的某些特性让我们更容易构建可扩展的上下文。不像uber-jar,Docker可以帮助你将所有的依赖(包括JVM!)打包到一个随时可发布的镜像里。这是Docker吸引广大开发人员的重要特性。但是,这也会带来一些隐患。一般来说,程序员需要用不同的方式和代码交互 - 监控它,调试它,链接它,调优它。。。如果使用Docker,这些都会需要额外的工作。

比如,我们想使用jconsole,它依赖于JMX功能,JMX因为要使用RMI又需要网络。使用Docker的话就不是很直接,需要一些技巧去开启所需端口。我们最初发现这个问题是当我们想要构建Takipi的Docker安装器,我们不得不在容器里JVM之外运行了一个后台程序。详细的解决方案在GitHub上。收起
 2015-09-09
浏览4791

提问者

macan789测试工程师, evada

问题状态

  • 发布时间:2015-08-26
  • 关注会员:4 人
  • 问题浏览:12838
  • 最近回答:2018-03-02
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30