docker cp – “来自守护进程的错误响应:不是目录”

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

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

但是得到下面的错误,

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

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

感谢所有的答案。 经过一番努力发现,错误信息实际上并没有直接与docker cp命令相关。

该场景是,我运行docker与本地文件的链接。 docker运行时,我删除它。 然后文件以某种方式作为一个文件夹创build(可能,当我重新启动docker)。

每当我执行一些命令的时候,docker工都给了我这个错误。 然后,一旦我创build文件错误消失。

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

 $ 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# 

然后,在另一个terminal

 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:~$ 

请按照这些说明,确保您的文件path中没有错别字,否则共享一个可重现的错误。

看来你的命令是正确的。 您请尝试从本地机器下面尝试,而不是从容器内部。 有时不幸的是,如果我们在容器中运行这个命令,我们会得到这样的错误。

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

希望它会帮助你。