解决Linux kernel >=5.10.13无法使用Docker
Stitch-Zhang
A iddle programer原因#
高版本Linux内核中Apparmor机制会使docker无法使用,具体表现为无法启动容器
其提示如下所示
相关信息#
AppArmor (“Application Armor”,意为“应用盔甲”) 是一个Linux内核安全模块,允许系统管理员通过每个程序的配置文件限制程序的功能。如它的帮> 助页面所说,“AppArmor 是一个对内核的增强工具,将程序限制在一个有限的资源集合中。AppArmor 独特的安全模型将对访问属性的控制绑定到程序而非户。 -- 摘自维基百科
讲人话AppArmor就是现代SELinux
解决方案#
在内核启动参数中添加
具体方法#
临时解决#
在引导文件中添加参数
如果是 GRUB引导,编辑 /boot/grub/grub.cfg 文件
找到当前Linux引导条目
如下为我当前设备的启动项及参数,忽略部分信息
修改为
info
使用当前解决方案,在下次内核升级时,GRUB 配置文件grub.cfg 将会重新生成
导致之前配置的失效
永久解决#
在 grub.cfg文件生成器生成的配置文件 /etc/default/grub中修改
原始如下
修改为
tip
使用当前方案时需要重新生成GRUB配置文件grub.cfg,修改后每次grub-mkconfig将自动添加内核引导参数
apparmor=1 lsm=lockdown,yama,apparmor,bpf
执行重新生成grub配置