当我试图在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用户(:
- 根据第一个要点配置sysctl的命令:
echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/10-docker.conf && sysctl --system
- 根据第一个要点配置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上的jelly
,options
关键字丢失,因此这应该是正确的命令:
echo "options overlay permit_mounts_in_userns=1" > /etc/modprobe.d/10-docker.conf