使用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/grubGRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=0 systemd.unified_cgroup_hierarchy=0"
systemd.unified_cgroup_hierarchy=0 【值为1,就是cgroup v2,值为0,则为cgroup v1】
参数修改完成后,需要重启加载配置文件,重启Ubuntu系统
sudo update-grub
sudo reboot
重启后,docker容器可正常运行
mount | grep cgroup
操作系统版本:Ubuntu 22.04.3 LTS
内核版本:6.2.0-34-generic