You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VisualVM/Jconsole无法连接容器内Micronaut应用求排查方案

JMX无法连接Micronaut容器应用的排查方向
  • 容器端口映射验证
    确认启动容器时是否已将JMX端口(默认1099)映射到宿主机,比如是否添加了-p 1099:1099参数。用docker ps查看容器端口映射状态,确保宿主机端口与容器内JMX端口一一对应,没有映射的话宿主机无法访问容器内的1099端口。

  • JVM参数实际生效检查
    进入容器内部,执行ps aux | grep java查看应用的实际JVM启动参数,重点确认以下关键参数是否正确配置:

    • com.sun.management.jmxremote
    • com.sun.management.jmxremote.port=1099
    • com.sun.management.jmxremote.rmi.port=1099(RMI端口需与JMX端口一致,避免额外端口映射)
    • com.sun.management.jmxremote.authenticate=false(测试阶段先关闭认证,排除权限干扰)
    • com.sun.management.jmxremote.ssl=false(测试阶段关闭SSL)
    • java.rmi.server.hostname(必须设置为宿主机IP或容器可被外部访问的IP,不能用localhost,否则RMI会返回容器内部IP,宿主机无法解析)
  • 网络连通性测试
    在宿主机用telnet localhost 1099或nc -zv localhost 1099测试端口是否能连通,不通则说明端口映射失败或容器内JMX服务未监听该端口。
    若宿主机测试不通,进入容器执行netstat -tulpn | grep 1099,确认Java进程是否正在监听1099端口,排查JMX服务是否正常启动。

  • 连接工具操作方式修正
    不要使用VisualVM/JConsole的“本地进程”选项——容器内的JVM进程不属于宿主机本地进程,需选择“远程连接”,手动输入localhost:1099(或宿主机IP:1099)。如果之前配置了JMX认证或SSL,连接时需输入对应的用户名密码,或配置好SSL证书。

  • 容器网络模式排查
    若容器使用--network=host模式,无需端口映射,但要确认java.rmi.server.hostname参数设置正确,且宿主机1099端口未被其他进程占用。
    若使用自定义网络,需确保宿主机与容器网络互通,没有防火墙、安全组规则拦截1099端口。

  • 宿主机端口占用检查
    执行netstat -tulpn | grep 1099查看宿主机1099端口是否被其他进程占用,若被占用,要么更换JMX端口,要么停止占用该端口的进程。

内容的提问来源于stack exchange,提问作者Manish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:13:13