Oracle Linux 9.1中Docker与Rancher运行时cgroup报错求助
解决Oracle Linux 9.1上Docker 20.10.17 + Rancher 2.4.9的cgroup CPU挂载点缺失错误
问题详情
获取容器运行时的cgroup失败:无法获取Docker进程对应的容器名称:未找到CPU挂载点。运行时系统容器指标可能缺失。
环境:Oracle Linux Server 9.1、Docker 20.10.17、Rancher 2.4.9
解决方案
1. 切换到cgroup v1(关键步骤)
Oracle Linux 9默认启用cgroup v2,但Rancher 2.4.x版本对cgroup v2支持不完善,需切换至cgroup v1:
- 编辑GRUB配置文件:
在vi /etc/default/grubGRUB_CMDLINE_LINUX参数中添加systemd.unified_cgroup_hierarchy=0,修改后示例:GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/ol-swap rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet systemd.unified_cgroup_hierarchy=0" - 重新生成GRUB配置:
- BIOS引导系统执行:
grub2-mkconfig -o /boot/grub2/grub.cfg - UEFI引导系统执行:
grub2-mkconfig -o /boot/efi/EFI/ol/grub.cfg
- BIOS引导系统执行:
- 重启服务器使配置生效。
2. 验证cgroup版本
重启后执行以下命令确认已切换到cgroup v1:
mount | grep cgroup
输出应包含独立的cgroup挂载点(如/sys/fs/cgroup/cpu、/sys/fs/cgroup/memory),而非单一的/sys/fs/cgroup/unified。
3. 配置Docker使用systemd cgroup驱动
Rancher 2.4.9要求Docker使用systemd作为cgroup驱动:
- 创建/编辑Docker守护进程配置文件:
添加以下内容:vi /etc/docker/daemon.json{ "exec-opts": ["native.cgroupdriver=systemd"] } - 重启Docker服务:
systemctl restart docker - 验证配置:
输出需显示docker info | grep CgroupCgroup Driver: systemd。
4. 重启Rancher服务
如果Rancher以容器形式运行,重启Rancher容器:
docker restart <rancher-container-id>
若为其他部署方式,重启对应Rancher服务即可。
内容的提问来源于stack exchange,提问作者Ahsaan ullah
相关产品推荐
相关产品推荐

