我想将一个文件夹从docker容器复制到我的机器上。我正在查看this question。
所以这是我的命令:
sudo docker cp 2f6aca7f2748:/root/scripts/ .
我收到以下错误:
mkdir /home/***/scripts: permission denied
我尝试mkdir scripts
,这是可以的(当然)。这可能是什么问题?
更多上下文:我使用的是NIS帐户,在我的桌面和服务器之间共享。但是,docker在服务器中,我想将文件夹从主机复制到服务器上的本地文件夹。
答案 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 以获得适当的权限。