Jconsole + Jmx 远程监控docker容器运行
这里以一个springboot项目打包到docker环境来举例
新建一个springboot项目
这个很简单就不多解释了
Dockerfile
FROM openjdk:8-jdk-alpineEXPOSE 8080 20020VOLUME /tmpADD ./target/*.jar app.jarCMD java \-Djava.rmi.server.hostname='127.0.0.1' \-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=20020 \-Dcom.sun.management.jmxremote.rmi.port=20020 \-Dcom.sun.management.jmxremote.ssl=false \-Dcom.sun.management.jmxremote.authenticate=false \-Djava.security.egd=file:/dev/./urandom \-jar /app.jar
这里主要是看dockerfile的配置,需要注意下
- jmx的端口需要通过EXPOSE 暴露出去
- hostname 需要是外网IP
- 需要指定jmxremote.rmi.port
启动你的docker
docker run -p 8090:8080 -p 20020:20020 springboot-docker
使用Jconsole 连接
命令行输入以下命令
jconsole
然后你会看到一个弹窗
在远程进程中输入你的主机IP+端口号,点击连接即可