如给tomcat添加jmx。
添加位置见:https://www.cnblogs.com/augus007/articles/9018127.html
##添加jmx参数
```
普通类型:
CATALINA_OPTS="/ -Dcom.sun.management.jmxremote.rmi.port=9090 / -Dcom.sun.management.jmxremote=true / -Dcom.sun.management.jmxremote.port=9090 / -Dcom.sun.management.jmxremote.ssl=false / -Dcom.sun.management.jmxremote.authenticate=false / -Dcom.sun.management.jmxremote.local.only=false / -Djava.rmi.server.hostname=192.168.99.100" #直接写物理机地址就行
特殊类型:
ENV CATALINA_OPTS="/ #为什么要加env,不知 -Dcom.sun.management.jmxremote.rmi.port=9090 / -Dcom.sun.management.jmxremote=true / -Dcom.sun.management.jmxremote.port=9090 / -Dcom.sun.management.jmxremote.ssl=false / -Dcom.sun.management.jmxremote.authenticate=false / -Dcom.sun.management.jmxremote.local.only=false / -Djava.rmi.server.hostname=192.168.99.100" EXPOSE 8080 #这下面的内容不懂 EXPOSE 9090 ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
```
>其中ava.rmi.server.hostname为docker的地址
>注意,千万设置jmx时不要使用JAVA_OPTS此参数,应当用CATALINA_OPTS 。因为tomcat可能通过JAVA_OPTS配置了jvm的参数,如果再设置成为JAVA_OPTS会将jvm参数覆盖掉
#添加了以上内容后,启动tomcat所在的docker,
docker run -d -p 80:8080 -p 9090:9090 --volume="/catalina.sh:/opt/tomcat/bin/catalina.sh" --name=tomcat docker.io/consol/tomcat-7.0
#80端口是tomcat的服务映射端口
#9090端口是为了映射tomcat的jmx启动的端口
#--volume 是为了将物理机中的catalina.sh(即:我们手动更改过的文件)映射到docke中去、
##jvisualvm
本地命令行敲入jvisualvm打开
- 添加远程机器
192.168.99.100
- 添加jmx连接
192.168.99.100:9090
不要求SSL连接
##查看mbean
添加插件VisualVM-MBeans
##参考文档####
- [Monitoring Java Applications Running Inside Docker Containers](http://www.jamasoftware.com/blog/monitoring-java-applications/)
如果你嫌弃上面方法麻烦,通过你的docker又是通过k8s进行集群管理,你可能需要寻求别的方法:
借助jenkins进行参数配置
具体配置方法参考:jmx 远程监控tomcat