docker cp:不要允许在主机上创建文件夹

时间:2017-07-27 18:06:14

标签: docker

我想将一个文件夹从docker容器复制到我的机器上。我正在查看this question

所以这是我的命令:

sudo docker cp 2f6aca7f2748:/root/scripts/ .

我收到以下错误:

mkdir /home/***/scripts: permission denied

我尝试mkdir scripts,这是可以的(当然)。这可能是什么问题?

更新

更多上下文:我使用的是NIS帐户,在我的桌面和服务器之间共享。但是,docker在服务器中,我想将文件夹从主机复制到服务器上的本地文件夹。

2 个答案:

答案 0 :(得分:0)

https://docs.docker.com/engine/reference/commandline/cp/#extended-description

它说:

  

cp命令的行为类似于该目录中的Unix cp -a命令   如果可能,将以递归方式复制并保留权限。   所有权设置为目的地的用户和主要组。对于   例如,使用UID:GID创建复制到容器的文件   root用户。 使用。创建复制到本地计算机的文件   UID:调用docker cp命令的用户的GID。

这可能是造成这个问题的原因。

答案 1 :(得分:0)

作为@Fahri 解决方案 here 的后续。

您需要目标文件夹的所有权,

由于我无论如何都要擦除机器,所以我只是使用以下命令将文件夹的所有权设置为任何用户。

sudo chmod -R a+rwX directory/

如果您打算保留机器,请记住不要这样做,请参阅 this answer 以获得适当的权限。