【问题标题】:Unable to copy file from Docker container to host无法将文件从 Docker 容器复制到主机
【发布时间】:2017-08-14 19:36:58
【问题描述】:
$ docker cp maven-container_:xxxx.war /home/wissem/Documents/docker-stage/wildfly-configured/target/

来自守护进程的错误响应:lstat

/var/lib/docker/aufs/mnt/afbdc7f4ce3165fb2e6c34929841b9fa911de1978887dd5b9b0804e4f624af2d /xxxx.war: 没有这样的文件或目录

错误:作业失败:退出状态 1

【问题讨论】:

  • 您需要从正在运行的实例而不是图像中复制。所以我假设maven-container_ 是您启动的容器的名称,而不是图像。在:docker cp maven-container_:/path/inside/container/xxxx.war /home/wissem/Documents/docker-stage/wildfly-configured/target/之后也要使用完整路径
  • 已解决:这是我的路径:docker cp maven-container_:/opt/maven/targe/xxxx.war ....

标签: docker copy containers


【解决方案1】:

您需要从正在运行的实例而不是图像中复制。所以我假设maven-container_ 是您启动的容器的名称,而不是图像。在:之后也要使用完整路径,

docker cp maven-container_:/path/inside/container/xxxx.war /home/wissem/Documents/docker-stage/wildfly-configured/targe‌​t/

【讨论】:

  • Thsnk。帮我解决了问题。
  • 不需要运行
  • 从图像中复制而不运行它 - 创建一个具有名称的容器。 docker create my_image_tag --name my_cont_name; docker cp my_cont_name:/path/file /home/...
  • 谢谢,在完成测试后我的测试容器退出后,我试图复制出来。我猜测试镜像和docker run的实例不一样,是容器镜像的一个fork,完成后就丢失了?
【解决方案2】:

我在尝试复制根文件夹下的文件时遇到此错误(似乎与 @utomas 的 answer 有关)。

$ docker cp dreamy_brown:/root/myfile.txt ~
Error: No such container:path: dreamy_brown:/root/myfile.txt

解决方案:我首先从容器中将文件移动到 /tmp 文件夹:

$ mv /root/myfile.txt /tmp

然后我可以将其复制到主机:

$ docker cp dreamy_brown:/tmp/myfile.txt ~

【讨论】:

  • 对于“解决方案”步骤中的其他任何人,您必须首先进入容器内。我在 compose 里面跑:$docker-compose exec CONTAINER_NAME bash。这将我带到了/root/,然后我可以按照说明将文件移动/复制到 tmp。
【解决方案3】:

对我来说,由于权限,它不起作用。我试图复制的文件归 postgres 用户所有,而默认用户似乎是 root。

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 2015-07-08
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多