命令jhsdb jmap --heap --pid 1 报错

一、查看已经运行的java docker服务的堆使用情况。命令jhsdb jmap --heap --pid 1 报错

主要错误信息:

  ERROR: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
  Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted

原因:

  Docker 自 1.10 版本开始加入的安全特性。 jmap 这类 JDK 工具依赖于 Linux 的 PTRACE_ATTACH,而 Docker 自 1.10 版本开始,默认的 seccomp 配置文件中禁用了 ptrace。容器需要加入对应的设置,使容器支持相关命令的使用。

解决:

  1.停止docker服务  systemctl stop docker

  2.cd  /var/lib/docker/containers/容器id  切换到容器路径

  3.vi hostconfig.json 编辑配置文件,修改CapAdd 的值为SYS_PTRACE

   4. 重启docker服务  systemctl start docker 

修改后的结果:

 

posted @ 2021-11-19 20:48  煮不熟的鸭子  阅读(1553)  评论(0编辑  收藏  举报