无法使用 docker cp 从 /tmp 复制文件



当使用docker cp将文件从本地机器/tmp/data.txt移动到容器时,它失败,并返回错误:

lstat/tmp/data.txt:没有这样的文件或目录

文件存在,我可以毫无问题地运行stat /tmp/data.txtcat /tmp/data.txt

即使我像data2.txt一样在/tmp中创建另一个文件,我也会得到完全相同的错误。

但是,如果我像在~/documents中那样在/tmp之外创建一个文件,并用docker cp复制它,它就可以正常工作。

我查看了docker cp的文档,其中提到:

无法复制某些系统文件,如/proc、/sys、/dev、tmpfs下的资源,以及用户在容器中创建的装载

但没有提到/tmp作为这样一个目录。

我在Debian 10上运行,但我的一个朋友在Ubuntu 20.04上可以做得很好。

我们都使用相同版本的docker(19.03.11(

原因可能是什么?

我找到了解决方案。

我已经安装了docker作为一个快照。我卸载了它(sudo snap remove docker(,并使用官方的Docker指南在Debian上安装它。

之后,一切都很顺利。

我认为这可能是由于快照包对系统资源的访问权限有限,但我不确定。

最新更新