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 BTRACE_HOME=/opt/btrace                      \
            -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

猜你喜欢

转载自www.cnblogs.com/qmfsun/p/10858473.html