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