在docker容器内debootstrap

fbr*_*sch 14 chroot docker

这是我的问题:我想在docker容器中构建一个chroot环境.问题是debootstrap无法运行,因为它无法在chroot中挂载proc:

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

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

如果我run --privileged是容器,它(当然)工作......我真的非常想在Dockerfile中解除chroot(更清洁).有没有办法让它发挥作用?

非常感谢!

小智 8

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

fakechroot fakeroot debootstrap --variant=fakechroot ...
Run Code Online (Sandbox Code Playgroud)

干杯!


Nat*_*man 5

不,这目前是不可能的。

问题 #1916(涉及在 期间运行特权操作docker build)仍然是一个悬而未决的问题。曾经讨论过添加命令行标志和RUNP命令,但这些都没有实现。


小智 5

添加--cap-add=SYS_ADMIN --security-opt apparmor:unconfineddocker run命令对我有用。

参见moby/moby 问题 16429


Usm*_*ail -1

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

Docker 针对的是微服务,并不是虚拟机的替代品。在一个容器中进行多个安装绝对不符合这一点。为什么不使用多个 docker 容器呢?

  • 请回答问题,而不是抱怨为什么人们需要这样做。有时您无法选择工具而需要做一些事情。有时您只是想了解它。 (5认同)