当前位置: 首页 > 面试题库 >

我如何将--bind挂载到Docker容器中?

谢飞舟
2023-03-14
问题内容

我有这个容器基于debian:jessie(但是与我有相同的问题,这并不是很相关alpine:3.3)。我到达需要的地方

mount --bind /htdocs/www /home/user/example.com/www

我得到

mount: permission denied

我在任何内核日志中都找不到任何东西,而且-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:jessie
root@ee0b1d5fe546:/# mkdir /mnt/test
root@ee0b1d5fe546:/# mount --bind /home /mnt/test/
root@ee0b1d5fe546:/#

请谨慎使用 。不要在特权容器中运行不受信任的软件。



 类似资料:
  • 问题内容: 我对Docker中的整个数据量过程有疑问。基本上,这里有两个Dockerfile及其各自的运行命令: Dockerfile 1- 命令1- Dockerfile 2- 命令2- 因此,奇怪的是第一个dockerfile和命令按预期工作。docker守护程序将目录从容器装载到主机的位置。因此,我可以根据需要编辑配置文件,它们将在重新启动后保留在容器中。 但是,对于第二个dockerfil

  • 问题内容: 在Docker容器中挂载主机目录非常容易。 但是我需要另一种方式。 我使用Docker容器作为开发环境来开发WordPress插件。该Docker容器包含运行WordPress所需的一切(MySQL,Apache,PHP和WordPress)。我从Docker容器中的主机挂载了我的插件src文件夹,以便可以在开发期间测试我的插件。 对于调试,如果我在主机上运行的IDE具有对Docker

  • 假设我有一个应用程序具有这个简单的DockerFile: 然后我运行了一个容器: 所以它工作正常,并将一些日志存储在docker容器的中。 我也看到docker-mount目录从容器到主机,但它并没有解决我的问题我需要一种方法备份我的文件从Docker到主机。

  • 我正在尝试将当前的工作目录挂载到Docker容器上,但没有工作。这是我的Dockerfile 我想,它们应该只安装在容器上,并且只有输出将在当前工作目录中生成。抱歉,我对Docker很陌生,我需要一些帮助....

  • 我想挂载我的usb驱动器到一个正在运行的docker实例,手动备份一些文件。 我知道的特性,但这会创建一个新的容器。注意:它是一个nextcloudpi容器。

  • 问题内容: 示例(为简便起见,省略了许多选项): 这是错误的,因为没有名称名称的卷,这意味着该卷名称必须是文件的完整路径(即,您不能在该卷名称后附加路径)? 尝试设置只会返回错误。 有没有办法将单个文件安装到容器中? 问题答案: 您不能在命名卷中装入文件或子目录,源是命名卷或主机路径。NFS本身,以及您将在Linux中挂载的大多数文件系统,都要求您挂载整个文件系统,而不是单个文件,当下降到inod