Debian配置Docker无根模式时modprobe overlay参数报错求助
解决Docker Rootless模式中modprobe overlay参数解析错误的问题
我之前在Debian上配置Docker Rootless模式时也碰到过一模一样的modprobe参数解析问题,其实核心原因是modprobe配置文件的语法用错了,下面是具体的解决步骤:
1. 修正modprobe配置文件内容
打开/etc/modprobe.d/10-docker.conf,将里面的内容替换为正确的格式:
options overlay permit_mounts_in_userns=1
这里的规则是:modprobe配置文件中,给模块设置参数必须以options开头,后面紧跟模块名(这里是overlay),再加上要设置的参数键值对。你之前的两种写法都不符合这个语法规范,所以会被系统判定为无效行忽略。
2. 加载更新后的overlay模块配置
如果当前没有容器或进程在使用overlay模块,可以直接卸载并重新加载模块来生效:
sudo rmmod overlay && sudo modprobe overlay
如果提示模块正在使用中(比如有Docker容器运行),可以先停止所有Docker相关服务,或者直接重启系统来确保配置生效。
3. 验证参数是否生效
执行以下命令检查参数是否成功设置:
cat /sys/module/overlay/parameters/permit_mounts_in_userns
如果输出结果是1,说明参数已经正确生效。
额外注意事项
- 确保你之前设置的
kernel.unprivileged_userns_clone=1已经生效,可以用sysctl kernel.unprivileged_userns_clone验证,输出应为kernel.unprivileged_userns_clone = 1。 - Debian系统下配置Rootless Docker还需要安装必要的依赖包,执行以下命令安装:
sudo apt-get install uidmap slirp4netns
内容的提问来源于stack exchange,提问作者luukvhoudt
相关产品推荐
相关产品推荐

