繁体   English   中英

为控制组指定 --cgroup-parent 时出错

[英]Error specifying --cgroup-parent for a control group

我想创建一个控制组来管理与某些系统管理功能相关的资源。 其中一些在 docker 容器中运行。 当我运行这些 docker 容器时,我希望能够指定它们所在的 cgroup。

'docker run' 命令有一个选项“--cgroup-parent”,它暗示我应该能够做到这一点。 然而。 当我尝试使用此选项运行容器时,出现错误。

这可能很重要:我正在使用 cgroups v2

所以首先,我在 /sys/fs/cgroup/system.slice 中创建一个子目录

mkdir /sys/fs/cgroup/system.slice/mygroup
cd /sys/fs/cgroup/system.slice/mygroup
echo +cpuset +cpu +io +memory +pids > cgroup.subtree_control

然后我尝试运行 docker 容器

docker run --cgroup-parent=/sys/fs/cgroup/system.slice/test -p 5201-5202:5201-5202 -v /root:/root -it --entrypoint "/bin/bash" docker-stress

在这一点上,我得到了这样的回应:

docker: Error response from daemon: cgroup-parent for systemd cgroup should be a valid slice named as "xxx.slice".
See 'docker run --help'.

这是使用 Ubuntu 18.04、docker 版本 20.10.07。 也许我不明白 --cgroup-parent 选项的意图。 我已经搜索了文档和示例,但我没有任何运气。 有谁知道我在这里做错了什么?

好吧,将此归结为缺乏经验。 答案在错误消息中。 对于 v2 cgroup,cgroup 父名称需要命名为 xxx.slice。 例如,如果我们使用 abc.slice,则将创建以下 cgroup 层次结构:

/sys/fs/cgroup/a.slice/ab.slice/abc.slice

docker 容器 cgroup 将在 abc.slice 下创建为 docker-.scope

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM