小编gao*_*the的帖子

为什么容器外的目录层次结构的 docker cp 失败且权限被拒绝?

背景:

这个 docker cp out from 容器失败的行为有点古怪,所以我认为应该记录下来。我找不到匹配的问题或 docker 问题,但我可以看到聊天/评论,我认为这表明人们正在遇到这种情况。

我有一个 docker 映像,在创建映像时我会打包映像中的一些目录。当容器第一次启动时,目录将从容器中复制出来并用于初始化目录,然后将该目录安装为容器的 docker 卷。

问题:

我所看到的是,根据图像的构建方式,有时在执行目录的部分副本后,目录外的 docker cp 会失败,并显示“打开 <dir>/<file> 权限被拒绝” 。

我发现当开发人员在本地构建图像时,它工作正常。我发现当从已发布的模块构建图像时它失败了。

以 root 身份在目录外执行 docker cp 工作正常。

以普通用户身份在目录外执行 docker cp 不起作用。该目录已创建,但为空。

目录权限(奇怪的是源目录)被证明是问题的原因

这有点明显,但也不明显;顶级目录可以正常创建,因此无论源目录的权限是什么,您都希望完整目录层次结构的递归副本能够工作。

在源代码管理目录所有权内设置了写权限。当模块被释放时,写入权限被删除。因此,解决方案是在使用已发布的模块进行构建时,必须添加回写入权限。

drwxr-xr-x dev/dev         buildarea/.../jenkins/
drwxr-xr-x dev/dev         buildarea/.../jenkins/email-templates/

dr-xr-xr-x root/root         /releasearea/.../jenkins/
dr-xr-xr-x root/root         /releasearea/.../jenkins/email-templates/
Run Code Online (Sandbox Code Playgroud)

我在 2017 年 7 月容器中的 docker 17.03.1 centos cp 中看到了这一点。

permissions docker

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

docker ×1

permissions ×1