在docker中使用gdb调试程序

在docker的容器中,不能使用gdb调试程序。经过调查发现是原因是ptrace: Operation not permitted.
上网查找发现是ubuntu的安全设置问题,运行如下命令可以解决:

sudo su -
echo 0 /proc/sys/kernel/yama/ptrace_scope

但仍然提示ptrace: Operation not permitted.
再次查找docker ptrace: Operation not permitted.,发现了docker的一个issues,原因是apparmor的docker profile中限制了ptrace。
通过改变docker profile的状态,可以让gdb正常运行了。

sudo apt-get install apparmor-utils
aa-complain /etc/apparmor.d/docker

参考文档

  • apparmor denies ptrace to docker-default profile - github
  • Linux Security Framework -- Apparmor - csdn

你可能感兴趣的:(在docker中使用gdb调试程序)