Linux服务器被重启后,docker-compose up -d 启动服务突然就失败了

系统版本是Ubuntu 22.02版本,x86架构

docker版本是26.1.3

报错

failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting cgroup config for procHooks process: load program: errno 524: processed 8 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0: unknown

错误截图

直接说解决方案,修改cgroup v2为cgroup v1,重启服务器后,docker-compose up -d 就能正常启动服务了

操作流程

1.编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加

systemd.unified_cgroup_hierarchy=0

2.更新 grub 并重启

update-grub

reboot

3.重启后确认是否生效

执行下面命令

docker info | grep -i "cgroup version"

应该输出

Cgroup Version: 1

或者执行stat -fc %T /sys/fs/cgroup/

应该输出

tmpfs

延伸

找了半天的原因,原来是这个原因,挺奇怪的,查了下Docker 默认使用 cgroup v2,某些旧内核(如 4.18)的 cgroup v2 BPF 实现存在缺陷。可能是内核版本兼容性问题吧。

感谢下面这个博主博客提供的思路

玩客云刷机armbian后docker启动不起来,提示bpf_prog_query(BPF_CGROUP_DEVICE) failed

更多推荐