在没有root用户访问权限的系统上构建Docker映像

时间:2018-11-09 23:40:36

标签: docker dockerfile opensuse

我正在尝试将Dockerfile构建到图像中。我想使用一个运行相当严格的OpenSUSE系统-我没有root访问权限,因此无法安装docker或运行docker daemon以使用通常的docker build方法。

我已经研究了各种方法,但是尽管声称以非特权身份运行,但它们似乎都需要在某一点进行root访问。

img似乎很有希望,但是运行二进制文件会导致错误failed to use newuidmap并解决此问题似乎需要修改root拥有的文件。

Buildah似乎也很有希望,但是我遇到了类似的uid问题,需要root才能解决。

2 个答案:

答案 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