systemctl slice配置docker最大占用cpu 内存
Docker 全局资源限制配置指南
1. 创建 systemd Slice
创建文件 /etc/systemd/system/docker_limit.slice:
[Unit]
Description=Docker global resource slice
[Slice]
CPUAccounting=true
MemoryAccounting=true
CPUQuota=360%
MemoryHigh=12G
MemoryMax=14.4G
执行:
sudo systemctl daemon-reload
sudo systemctl enable --now docker_limit.slice
2. 配置 Docker 守护进程
编辑 /etc/docker/daemon.json:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"cgroup-parent": "docker_limit.slice"
}
执行:
sudo systemctl restart docker
3. 重启已有容器
无需重建镜像,直接重启即可迁移到新 slice:
docker restart <容器ID或名称>
4. 验证配置生效
# 获取容器 PID
PID=$(docker inspect -f '{{.State.Pid}}' <容器ID>)
# 查看 cgroup 路径
cat /proc/$PID/cgroup
正常输出应包含:0::/docker_limit.slice/docker-<容器ID>.scope
注意事项
- 驱动匹配:必须确认
docker info中Cgroup Driver为systemd,否则 slice 不生效。 - Slice 状态:若报
invalid slice name,请检查systemctl is-active docker_limit.slice是否为active。 - 重启生效:全局配置改完后必须
restart docker;旧容器必须执行restart才会进入新 slice。 - 路径格式:
daemon.json中的cgroup-parent必须带前导斜杠(/docker_limit.slice)。 - 资源换算:
CPUQuota按核数×90%计算(如4核设360%),内存按总容量×90%设置。
留待后查,同时方便他人
联系我:ivesbao@163.com
联系我:ivesbao@163.com

浙公网安备 33010602011771号