一、查看已经运行的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
修改后的结果: