docker容器中的gdb返回“ptrace:不允许操作”。

我在容器和主机上检查了/proc/sys/kernel/yama/ptrace_scope – 都报告值为零,但是当连接到一个gdb报告

 Reading symbols from /opt/my-web-proxy/bin/my-web-proxy...done. Attaching to program: /opt/my-web-proxy/bin/my-web-proxy, process 1 ptrace: Operation not permitted. 

我也尝试附加到具有特权标志的容器

 docker exec --privileged -it mywebproxy_my-proxy_1 /bin/bash 

主机操作系统是Fedora 25与docker从他们的回购和容器是官方centos6.8

我发现答案 – 容器需要以stracefunction开始

将此添加到我的docker-compose.yml文件允许GDB工作

 cap_add: - SYS_PTRACE 

或者也可以通过--cap-add=SYS_PTRACE--cap-add=SYS_PTRACE命令行上--cap-add=SYS_PTRACE