docker中的SO_DEBUG套接字选项的权限被拒绝

我已经隔离了在我的testing用例中抛出的Permission Deniedexception这些行 –

 ... ASSERT_EQ(0, getsockopt(s.getSocket(), SOL_SOCKET, SO_DEBUG, &optval, &optlen)); ... ... ASSERT_EQ(0, setsockopt(s.getSocket(), SOL_SOCKET, SO_DEBUG, &optval, optlen)); ... 

这些工作正常运行testing可执行文件与我的本地机器上的sudo例如。 sudo ./test/testexe和所有的testing通过,不会引发exception。 要运行这些没有sudo ,我已经尝试在执行testing之前设置function,例如。 sudo setcap "cap_net_admin+ep cap_net_raw+ep" test/testexe这次在我的本地机器上再次运行正常,没有sudo

Docker中没有任何一个方法可以工作的问题 – 既没有sudo帮助,也没有抛出exception, setcap方法也成功地设置了这些function,但是当执行testing的时候,错误的Operation not permittedOperation not permitted

那么是否有任何其他的方式成功地运行SO_DEBUG行,但没有提升特权运行docker,因为我只有在我的CI平台的docker集装箱内获得控制。