【发布时间】:2017-07-13 19:54:05
【问题描述】:
我正在尝试使用以下命令将文件从 docker 复制到主机,
docker cp <container_name>:<file FQN> ./
但出现以下错误,
来自守护进程的错误响应:不是目录
经验证,文件名和容器名是有效的。 注意:在 Mac 中使用 Docker
【问题讨论】:
标签: docker
我正在尝试使用以下命令将文件从 docker 复制到主机,
docker cp <container_name>:<file FQN> ./
但出现以下错误,
来自守护进程的错误响应:不是目录
经验证,文件名和容器名是有效的。 注意:在 Mac 中使用 Docker
【问题讨论】:
标签: docker
感谢您的所有回答。经过一番挣扎,发现错误消息实际上与docker cp 命令没有直接关系。
场景是,我运行带有本地文件链接的 docker。当 docker 运行时,我将其删除。然后该文件以某种方式创建为文件夹(可能是当我重新启动泊坞窗时)。
每当我执行一些命令时,码头工人都会给我那个错误。然后,一旦我创建了文件,错误就消失了。
【讨论】:
看来你的命令是正确的。您请从您的本地机器而不是从容器内部尝试如下操作。有时不幸的是,如果我们在容器中运行这个命令,我们会得到这种错误。
docker cp [container_name]:[docker dir abs path] [host dir path]
希望对你有所帮助。
【讨论】:
这是一个关于如何复制文件的完整示例:
$ 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:~$
请按照这些说明进行操作,确保文件路径中没有错字,否则会出现可重现的错误。
【讨论】:
尝试复制容器中实际上是卷的文件时也会出现此错误,但该文件已在主机上删除。
【讨论】:
这只是您要复制的路径中的错误。 你可能不相信,但确实如此。
【讨论】: