我如何将--bind挂载到Docker容器中?
我有这个容器基于debian:jessie
(但是与我有相同的问题,这并不是很相关alpine:3.3
)。我到达需要的地方
mount --bind /htdocs/www /home/user/example.com/www
我得到
mount: permissiondenied
我在任何内核日志中都找不到任何东西,而且-vvv
没有任何有趣的结果。我显然可以在主机上执行此操作(使用任何其他对子树/节点)。在我上面的示例中,/
htdocs / www是Docker卷的安装点,但它似乎没有任何意义,因为mount --bind
容器内没有任何一对子树/节点。
回答:
要使用mount
系统调用,您需要具备此CAP_SYS_ADMIN
功能。默认情况下,Docker在生成容器时会放弃所有功能(这意味着即使以
root 身份,您也不能做任何事情)。有关更多信息,请参见mount(2)手册页。
您可以使用--cap-add=SYS_ADMIN
标志启动容器,以将此功能添加到容器中:
root@host > docker run --rm -it --cap-add=SYS_ADMIN debian:jessieroot@ee0b1d5fe546:/# mkdir /mnt/test
root@ee0b1d5fe546:/# mount --bind /home /mnt/test/
root@ee0b1d5fe546:/#
。不要在特权容器中运行不受信任的软件。
以上是 我如何将--bind挂载到Docker容器中? 的全部内容, 来源链接: utcz.com/qa/417291.html