docker cp - "来自守护进程的错误响应:不是目录"

时间:2017-07-13 19:54:05

标签: docker

我正在尝试使用以下命令将文件从docker复制到主机

docker cp <container_name>:<file FQN> ./

但是得到以下错误,

  

来自守护程序的错误响应:不是目录

经过验证,文件名和容器名称有效。 注意:在Mac中使用Docker

5 个答案:

答案 0 :(得分:3)

感谢所有答案。经过一番斗争后发现错误消息实际上与docker cp命令没有直接关系。

情节是,我使用指向本地文件的链接运行了docker。当docker运行时我删除了它。然后文件以某种方式创建为文件夹(可能,当我重新启动docker时)。

每当我执行某个命令时,docker就会给我这个错误。然后,一旦我创建了文件,错误就消失了。

答案 1 :(得分:1)

以下是有关如何复制文件的完整示例:

$ docker run -it ubuntu /bin/bash 
root@9fc8a1af7f23:/# 
root@9fc8a1af7f23:/# ll 
total 72
drwxr-xr-x  34 root root 4096 Jul 13 21:51 ./
drwxr-xr-x  34 root root 4096 Jul 13 21:51 ../
-rwxr-xr-x   1 root root    0 Jul 13 21:51 .dockerenv*
drwxr-xr-x   2 root root 4096 Feb 14 23:29 bin/
drwxr-xr-x   2 root root 4096 Apr 12  2016 boot/
drwxr-xr-x   5 root root  360 Jul 13 21:51 dev/
drwxr-xr-x  45 root root 4096 Jul 13 21:51 etc/
drwxr-xr-x   2 root root 4096 Apr 12  2016 home/
drwxr-xr-x   8 root root 4096 Sep 13  2015 lib/
drwxr-xr-x   2 root root 4096 Feb 14 23:29 lib64/
drwxr-xr-x   2 root root 4096 Feb 14 23:28 media/
drwxr-xr-x   2 root root 4096 Feb 14 23:28 mnt/
drwxr-xr-x   2 root root 4096 Feb 14 23:28 opt/
dr-xr-xr-x 288 root root    0 Jul 13 21:51 proc/
drwx------   2 root root 4096 Feb 14 23:29 root/
drwxr-xr-x   6 root root 4096 Feb 27 19:41 run/
drwxr-xr-x   2 root root 4096 Feb 27 19:41 sbin/
drwxr-xr-x   2 root root 4096 Feb 14 23:28 srv/
dr-xr-xr-x  13 root root    0 Jul 13 21:51 sys/
drwxrwxrwt   2 root root 4096 Feb 14 23:29 tmp/
drwxr-xr-x  11 root root 4096 Feb 27 19:41 usr/
drwxr-xr-x  13 root root 4096 Feb 27 19:41 var/
root@9fc8a1af7f23:/# cd tmp/
root@9fc8a1af7f23:/tmp# ls 
root@9fc8a1af7f23:/tmp# echo "hello docker" > docker_test.txt
root@9fc8a1af7f23:/tmp# cat docker_test.txt 
hello docker
root@9fc8a1af7f23:/tmp# 

然后,在另一个终端

dali@dali-X550JK:~$ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9fc8a1af7f23        ubuntu              "/bin/bash"         2 minutes ago       Up 2 minutes                            fervent_hodgkin
dali@dali-X550JK:~$ docker cp fervent_hodgkin:/tmp/docker_test.txt /tmp/
dali@dali-X550JK:~$ cat /tmp/docker_test.txt 
hello docker
dali@dali-X550JK:~$ 

请按照这些说明操作,确保您的文件路径中没有拼写错误,否则会分享可重现的错误。

答案 2 :(得分:0)

看来你的命令是正确的。您可以从本地机器尝试以下内容,而不是从容器内部尝试。有时不幸的是,如果我们在容器中运行此命令,我们将会遇到这种错误。

docker cp [container_name]:[docker dir abs path] [host dir path]

希望它会对你有所帮助。

答案 3 :(得分:0)

这只是您要复制的路径中的错误。 你可能不相信,但确实如此。

答案 4 :(得分:0)

当尝试复制实际上是容器中的卷但文件已在主机上删除时,也会出现此错误。