使用cgroup_new_cgroup创建cgroup时出现错误50007

时间:2017-03-03 15:56:55

标签: c docker cgroups

我有一个在docker container中运行的进程(docker将该进程放在cgroup btw中)。流程分叉,我想将forks放入cgroups

我在程序中添加了以下代码:

cgroup_init();

struct cgroup *my_cgroup = cgroup_new_cgroup(cg_name);
cgroup_add_controller(my_cgroup, "cpu");

int cgroup_cr = cgroup_create_cgroup_from_parent(my_cgroup, 0);

cgroup_r是50007(" Cgroup,不允许操作")。我不知道为什么会这样?我需要更改一些配置吗?是否需要能力

1 个答案:

答案 0 :(得分:0)

我认为修改cgroups的访问权限允许进程转义docker容器,因此docker会默认禁用它。您可以通过运行容器来测试问题是否仅具有功能:

    {
"code": "USER_TIMEDOUT",
"message": "User session timedout for requestUri=/services/search/Employee"
}

很可能,您需要像SYS_ADMIN这样的权限,并且能够减少仅添加到特定项目的功能。

如果添加功能无法解决您的问题,您可以删除所有限制:

docker run --cap-add=ALL ...

更多详情请见: