我正在尝试将Dockerfile
构建到图像中。我想使用一个运行相当严格的OpenSUSE系统-我没有root访问权限,因此无法安装docker或运行docker daemon以使用通常的docker build
方法。
我已经研究了各种方法,但是尽管声称以非特权身份运行,但它们似乎都需要在某一点进行root访问。
img似乎很有希望,但是运行二进制文件会导致错误failed to use newuidmap
并解决此问题似乎需要修改root拥有的文件。
Buildah似乎也很有希望,但是我遇到了类似的uid问题,需要root才能解决。
答案 0 :(得分:1)
您可以使用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)下您将无能为力。
答案 1 :(得分:-1)
如果您询问使用root或sudo运行Docker,可以使用它。
类型:
$ sudo gpasswd -a $USER docker
点击Enter,然后输入:
$ newgrp docker
现在使用root运行docker