Ubuntu22.04系统 Cgroup v2 切换成v1

使用v1导致docker容器启动失败

Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted · Issue #4072 · lxc/lxc · GitHub
https://github.com/lxc/lxc/issues/4072

原因:ubuntu自21.04版本后的版本(不包含21.04)linux内核改用了cgroup v2版本,而容器镜像环境(centos7)需要的还是cgroup v1版本且centos7由于几乎不更新维护,因此后续小概率会支持cgroup v2。同时由于cgroup v2和v1不能兼容,因此导致容器启动后,内置的病毒沙箱引擎和相关服务无法正常启动。

既然docker容器只支持cgroup v1版本,那么我们就把宿主机(host)的cgroup版本改成v1就行了

vim /etc/default/grub

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=0 systemd.unified_cgroup_hierarchy=0"

Ubuntu22.04系统 Cgroup v2 切换成v1_第1张图片

systemd.unified_cgroup_hierarchy=0 【值为1,就是cgroup v2,值为0,则为cgroup v1】

参数修改完成后,需要重启加载配置文件,重启Ubuntu系统

sudo update-grub
sudo reboot

重启后,docker容器可正常运行

mount | grep cgroup

Ubuntu22.04系统 Cgroup v2 切换成v1_第2张图片

操作系统版本:Ubuntu 22.04.3 LTS
内核版本:6.2.0-34-generic

你可能感兴趣的:(运维学习笔记,Ubuntu系统,运维,linux)