尝试通过添加内核启动参数修复 Docker“cgroup 与目标模式不匹配”

尝试通过添加内核启动参数修复 Docker“cgroup 与目标模式不匹配”

我在运行某些 Docker 镜像时遇到问题:

docker: Error response from daemon: failed to create shim: OCI runtime create failed: 
container_linux.go:380: starting container process caused: process_linux.go:545: 
container init caused: process_linux.go:508: 
setting cgroup config for procHooks process caused: resulting devices cgroup doesn't match target mode: unknown.

因此,经过搜索,我发现了这个解决方案

我不知道这个解决方案是否可以帮助我解决 Docker 错误,但我需要的是添加一个内核启动参数。

"... systemd.unified_cgroup_hierarchy=0"

问题是该怎么做?我找到了很多关于启动 grub 编辑的教程,但我找不到我需要编辑哪个文件?

我有 Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0 x86_64),只有一个终端。没有 GUI。这是一台 VPS 服务器,我只能使用终端进行编辑。

有人能帮助我如何以及在哪里添加这个内核参数吗?

答案1

您已标记 Grub,因此我假设您正在使用 Grub。内核命令通常在文件中设置/etc/default/grub

编辑文件:

sudo nano /etc/default/grub

并编辑以下行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

改为:

GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=0 quiet splash"

CTRL+o保存更改,按CTRL+x退出 nano。

然后,运行以下命令来更新 grub:

sudo update-grub

需要注意的是,添加此项GRUB_CMDLINE_LINUX_DEFAULT将允许您使用恢复模式启动而不使用此选项。这样,如果参数搞乱了一切,您仍然可以不使用内核命令启动。

相关内容