Docker 多个容器 cgroup 资源 CPU MEM 限制

Docker multiple containers cgroup resource CPU MEM limitation

我正在使用 Ubuntu 21.10 并想限制我的 docker 容器子集的系统资源(CPU,MEM)——而不是针对特定容器。我该怎么做?

我想出了一些解决办法。在容器启动时有一个 docker 参数给我们。

首先您需要在/etc/systemd/system/mygroup.slice和运行systemctl daemon-reload.

中创建mygroup.slice
[Unit]
Description=my cgroup for Docker
Before=slices.target

[Slice]
MemoryAccounting=true
MemoryHigh=7G
MemoryMax=7.5G
CPUAccounting=true
CPUQuota=50%

之后可以用下一个参数启动一组容器。

--cgroup-parent=mygroup.slice

最后运行systemd-cgtop检查资源分配。