Docker cp:守护程序的错误响应:lstat找不到文件或目录。

4

我正在学习关于容器Docker的知识,目前还处于基础阶段。当我尝试使用命令docker cp将文件从容器复制到本地主机目录时,输出返回错误信息。我输入:

docker cp bridge:/home/arq3.txt .

输出结果:

来自守护程序的错误响应: lstat /var/lib/docker/aufs/mnt/231afc03ee896d66b09ed3c4d1d057a73eeed4f6182c3108dcbfb5b3337c8fa5/home/arq3.txt: 没有这个文件或目录

根据Docker的文档,语法是正确的,那么我做错了什么?还有这个目录 var/lib/docker/aufs/mnt/231afc03ee896d66b09ed3c4d1d057a73eeed4f6182c3108dcbfb5b3337c8fa5/ 是什么?

4个回答

2
错误提示告诉您在Docker容器中没有文件/home/arq3.txt。请检查文件路径。该文件可能不在/home目录下,而是在/home/<user>/root目录下。
至于/var/lib/docker/aufs/mnt/231afc03ee896d66b09ed3c4d1d057a73eeed4f6182c3108dcbfb5b3337c8fa5,它是您的Docker文件层次结构的挂载点。

0

您的文件在那里。问题出在 Docker 名称(“bridge”)上。您可能像我一样运行了 docker ps 命令以获取镜像列表,然后 - 逻辑上 - 使用镜像名称进行连接。

问题是您启动了一个新的镜像,它有不同的名称。您需要在 Docker 运行时打开另一个 ssh 连接并再次运行 docker ps 命令。这次您将看到一个额外的镜像名称。使用新的名称,docker cp 命令应该可以正常工作。


0

可能是开头缺少“/app”标签。请尝试执行以下命令 -

docker cp bridge:/app/home/arq3.txt .

我之前使用以下命令来查找文件位置 -

docker exec -it bridge /bin/sh

当我尝试执行以下命令时,它显示了 "/app" 目录。
docker exec -it bridge /bin/bash

0

我曾经遇到过类似的问题,当我手动从/var/lib/docker/aufs中删除文件时。

为了使docker重新正常工作,我不得不删除所有镜像和所有容器。

docker ps -asq | xargs docker rm -f 

之后,我已经删除了所有图片

docker images -q | xargs docker rmi

然后重新启动了我需要的所有Docker容器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接