互联网服务DockerTomcatjconsole

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

1.Docker环境宿主机:192.168.1.100Tomcat容器:映射端口: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"本地客户机-->...显示全部
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收起
参与24

查看其它 14 个回答macan789的回答

macan789macan789测试工程师evada
从Java角度看

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

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

回答者

macan789
测试工程师evada
擅长领域: Docker云计算容器引擎

macan789 最近回答过的问题

回答状态

  • 发布时间:2015-09-09
  • 关注会员:4 人
  • 回答浏览:8684
  • X社区推广