如何在docker容器中允许ptrace

环顾四周,我发现我可以使用

docker run --privileged --rm -i -t app /bin/bash 

这使得所有用户拥有的所有进程都可以访问所有的ptrace函数。 不幸的是我不想让别人有这个能力。 所以我看了看,发现我可以使用

 ptrace peer=@{profile_name} 

在我的aparmorconfiguration文件里面,然后在运行应用程序时包含了这个configuration文件。

 docker run --security-opt="apparmor:myprofile" --rm -i -t app /bin/bash 

一切正常加载。 然后,我使用fuser(以root身份),正如我所期望的,我可以看到root拥有的进程。 但是我有几个进程在uucp下运行,从而拒绝了权限。

所以我打算在uucp下bash。

 sudo -u uucp /bin/bash 

但使用fuser或lsof不起作用,不会返回任何内容。

那么当我作为docker dontainer中的所述用户活动时,如何为任何用户激活ptrace?

看起来像这个修复( https://github.com/docker/docker/pull/15161 )在2015-07-30合并到主,并包括在Docker v1.8.0及以上。 这不应该是最近版本的Docker和包含的AppArmorconfiguration文件的问题。