docker容器内的debootstrap

这是我的问题:我想在Docker容器内部build立一个chroot环境。 问题是debootstrap无法运行,因为它无法在chroot中安装proc:

W: Failure trying to run: chroot /var/chroot mount -t proc proc /proc

(在日志中问题原来是: mount: permission denied

如果我run --privileged的容器,它(当然)的作品…我真的真的很喜欢debootstrap在Dockerfile中的chroot(非常干净)。 有没有办法让我的工作?

非常感谢!

不,这目前不可能。

问题#1916 (涉及在docker build期间运行特权操作)仍然是一个公开的问题。 在讨论中增加了一个命令行标志和RUNP命令,但是这两个都没有被执行。

您可以使用debootstrap的fakechroot变体,如下所示:

 fakechroot fakeroot debootstrap --variant=fakechroot ... 

干杯!

简短的回答,没有特权模式没有没有办法。

Docker面向微型服务,并不代替虚拟机。 在一个容器中安装多个设备绝对不符合这个要求。 为什么不使用多个docker集装箱?

添加--cap-add=SYS_ADMIN --security-opt apparmor:unconfined--cap-add=SYS_ADMIN --security-opt apparmor:unconfined docker run命令中。

见moby / moby问题16429