当前位置: 首页 > 知识库问答 >
问题:

共享卷/文件权限/所有权(Docker)

澹台成龙
2023-03-14

我在使用Docker容器时遇到了一个有点烦人的问题(我使用的是Ubuntu,所以没有像VMWare或b2d这样的虚拟化)。我已经构建了我的映像,并且有一个正在运行的容器,其中有一个来自主机的共享(装入)目录和一个来自主机的共享(装入)文件。以下是Docker run命令的全文:

docker run -dit \
-p 80:80 \
--name my-container \
-v $(pwd)/components:/var/www/components \
-v $(pwd)/index.php:/var/www/index.php \
my-image

注意:许多用于编辑文件的工具,包括vi和sed--in-place可能会导致inode更改。从Docker V1.1.0开始,这将产生一个错误,如“sed:不能重命名。/sedkdj9dy:设备或资源忙”。如果要编辑已装入的文件,通常最容易的方法是装入父目录。

这似乎表明,与其挂载/components/index.php,不如挂载这两个目录的父目录。理论上听起来不错,但是根据-v选项的行为以及它与/directory的交互方式,父目录中的每个文件似乎都将被更改为libuuid:libuuid所有。此外,我在父目录中有许多容器中不需要的东西--比如构建工具、各种文件、一些压缩文件夹等。安装整个父目录似乎很浪费。

在我的主机上的/components/index.php上运行chown user:group允许我处理这个问题,并且似乎可以继续与容器同步。这是不是每次运行带有装入的主机卷的容器时都需要做的事情?我想有一个更有效的方法来实现这一点,我只是找不到任何地方对我的特定用例的解释。

  • DockerFile
  • /setup
  • 在pastebin上创建,以避免更长的帖子。永远不会过期。

创建映像后,这是我使用的run命令:

docker run -dit \
    -p 80:80 \
    --name my-container \
    -v $(pwd)/components:/var/www/wp-content/plugins/my-plugin-directory/components \
    -v $(pwd)/index.php:/var/www/wp-content/plugins/my-plugin-directory/index.php \
    my-image

共有1个答案

胥博文
2023-03-14

看起来容器中的chown-r nginx:nginx...命令将文件的所有权位更改为主机上的libuuid所有。

有关文件所有权位如何在主机和docker容器之间工作的基本解释,请参见了解docker中的用户文件所有权:如何避免更改链接卷的权限。

 类似资料:
  • 本文向大家介绍Linux下修改文件权限(所有权),包括了Linux下修改文件权限(所有权)的使用技巧和注意事项,需要的朋友参考一下 Linux与Unix是多用户操作系统,所以文件的权限与所有权的实现就显得很有必要;每个文件主要与三组权限打交道,分别是用户(user),用户组(group),其他用户(other) 用户(u)是文件的所有者,通常有所有的文件的操作权限 用户组(g)是多个用户的集合,可

  • 因此,我的Laravel项目中有以下文件夹组织: 公共 user_images group_images img css 供应商 等... 所以我的问题是,当用户上传图像时,我将其移动到文件夹user#image,然后使用干预图像使其变小,使用image::make(#folder),然后重新调整其大小,最后保存它。但要做到这一点,文件夹用户_映像需要特殊权限,使用chmod 777,我可以使其正

  • 假设我有一个无法发现的公用文件夹。如果我公开了其中一个文件的文件ID以供下载,不受信任的用户是否可能获得包含该文件的文件夹的链接,或者该文件夹中其他文件的链接?我在Google API上做了搜索,但没有找到任何相关的东西。 编辑:似乎你们中的一些人还没有明白这个问题。所以让我用一个图表来说明。假设我在Google Drive中有一个公用文件夹: 所以问题是,如果其他人有文件X的文件ID,我很满意,

  • 所以我正在编写一个应用程序,可以通过共享菜单从其他应用程序接收文件。我有一个,它有用于接收文件的意图过滤器。 一旦收到文件,就会启动共享活动,用户必须在该活动中选择一个文件夹,将收到的文件上传到其中。当用户选择了文件夹后,一个服务就会启动,从而上传文件。 问题是,接收到的文件URI(来自谷歌照片)被传递到,而调用,当完成时,会引发异常: 通过做一些研究,我发现内容提供商只在接收活动处于活动状态时才

  • 问题内容: 我已经和Docker玩了一段时间,在处理持久性数据时继续寻找相同的问题。 我创建我的文件并公开一个卷,或使用它[在容器中安装主机文件夹]。 我应该对主机上的共享卷应用什么权限? 我可以想到两种选择: 到目前为止,我已经授予所有人读取/写入访问权限,因此我可以从Docker容器写入该文件夹。 将用户从主机映射到容器,以便我可以分配更多的细化权限。不确定这是否可能,但尚未找到很多相关信息。

  • 我使用Docker已经有一段时间了,并且在处理持久数据时不断发现相同的问题。 我创建并公开卷,或者使用在容器中装入主机文件夹。 我应该对主机上的共享卷应用什么权限? 我能想到两个选择: > 到目前为止,我已经为每个人提供了读/写访问权限,因此我可以从Docker容器写入文件夹。 将用户从主机映射到容器中,这样我就可以分配更多的粒度权限。不确定这是可能的,但还没有找到很多关于它。到目前为止,我所能做