我正在尝试将Dockerfile
构建成图像。我想使用一个运行OpenSUSE的系统,它被锁定 - 我没有root访问权限,因此无法安装docker或运行docker守护进程来使用通常的docker build
方法。
我已经研究过各种各样的方法,但它们似乎都需要root访问权限,尽管声称要以非特权方式运行。
img似乎很有希望,但运行二进制导致错误failed to use newuidmap
并修复这似乎需要修改根拥有的文件。
Buildah似乎也很有希望,但我遇到了类似的需要root修复的uid问题。
您可以使用buildah构建容器映像,而无需root访问权限。为了做到这一点,你需要set up UID mapping,它需要root访问权限 - 编辑/etc/subuid
:
$ cat /etc/subuid
username:100000:65536
$ ll /etc/subuid
-rw-r--r--. 1 root root 34 Dec 3 14:17 /etc/subuid
除非您的发行版提供预先填充的/etc/subuid
,它与您的非特权用户一起工作,否则在当前的Linux内核实现(<4.20)下您无能为力。
如果您询问使用root或sudo运行Docker,您可以使用它。
类型:
$ sudo gpasswd -a $USER docker
按Enter键然后键入:
$ newgrp docker
现在使用root运行docker