如何设置modprobe覆盖permit_mounts_in_userns=1



当我试图在Debian上设置Docker守护进程以非root用户身份运行(无根模式(时,我遇到了以下问题。

如文档所述,以下是Debian GNU/Linux:需要遵循的步骤

  • kernel.unprivileged_userns_clone=1添加到/etc/sysctl.conf(或/etc/sysctl.d(并运行sudo sysctl --system
  • 要使用overlay2存储驱动程序(推荐(,请运行sudo modprobe overlay permit_mounts_in_userns=1(Debian 10中介绍的特定于Debian的内核补丁(。将配置添加到/etc/modprobe.d以实现持久性
  • 已知用于Debian 9和10。overlay2仅在Debian 10之后才被支持,并且需要如上所述的modprobe配置

由此,我可以组成以下要运行的命令(作为root用户(:

  1. 根据第一个要点配置sysctl的命令:
    echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/10-docker.conf 
    && sysctl --system
    
  2. 根据第一个要点配置modprobe的命令:
    echo "overlay permit_mounts_in_userns=1" > /etc/modprobe.d/10-docker.conf 
    && modprobe overlay permit_mounts_in_userns=1
    

第一步似乎很好,但当运行第二步的命令时,我会出现以下错误:

libkmod: ERROR ../libkmod/libkmod-config.c:656 kmod_config_parse: /etc/modprobe.d/10-docker.conf line 1: ignoring bad line starting with 'overlay'

删除";覆盖";来自/etc/modprobe.d/10-docker.conf的两者似乎都不能解决问题,这导致了以下错误:

libkmod: ERROR ../libkmod/libkmod-config.c:656 kmod_config_parse: /etc/modprobe.d/10-docker.conf line 1: ignoring bad line starting with 'permit_mounts_in_userns=1'

我试着搜索一些关于如何设置此配置的指导。但是运气不好,有人知道吗?

根据#debian通道中自由节点IRC上的jellyoptions关键字丢失,因此这应该是正确的命令:

echo "options overlay permit_mounts_in_userns=1" > /etc/modprobe.d/10-docker.conf

最新更新