docker环境无法执行jmap -heap 56命令


很奇怪的问题,但是jstack可以执行

解决方法:

docker 内部使用jmap 需要启动容器时候配置权限:docker run --privileged=true  --cap-add=SYS_PTRACE

配置dokcerfile文件:

    if [[ ! -z $level ]];then
       docker run -d                                        \
            -v ${localtime}:${localtime}:ro                 \
            -v ${confdir}:${confdir}                        \
            -v ${logdir}:${logdir}                          \
            -v ${nfsdir1}:${nfsdir1}                        \
            -v ${nfsdir2}:${nfsdir2}                        \
            -v ${nfsdir3}:${nfsdir3}                        \
            -v ${jprofiler9dir}:${jprofiler9dir}            \
            -e JAVA_HOME=/opt/jdk \ -e TERM=xterm \ -e PATH=${docker_path}                          \
            --restart=on-failure:3                          \
            --net host                                      \
            --privileged=true \ --cap-add=SYS_PTRACE \ --name ${projname} ${repository}:${tag_after_check} >/dev/null 2>&1

添加后执行后重新构建docker

折腾了的很久的问题终于解决了

 

参考:

https://www.cnblogs.com/vikings-blog/p/4238062.html

https://www.runoob.com/docker/docker-run-command.html

https://www.cnblogs.com/yfalcon/p/9044246.html

https://blog.csdn.net/ynhzdxc/article/details/63692636

https://www.v2ex.com/t/235726

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM