我正在尝试将文件从主机复制到容器。我已经检查了很多线程,但是这些线程都不适合我。
文件名,我正在尝试复制: ex.txt
需要放置的容器文件夹: my_folder
user:~$ docker exec -it my_container bash
a5b13d9a55fd:~S ls
my_folder
到目前为止,我已经尝试过:
user:~$ docker cp ex.txt my_container:/my_folder/
no such directory
user:~$ docker cp ex.txt my_container:/my_folder/ex.txt
Error response from daemon: lstat /var/lib/docker/aufs/mnt/f7796d886aa3673be37b1d346190b7d6ba0ed64edf83bf62bff325f87eaec5eb/my_folder: no such file or directory
请建议我在哪里缺少代码?
答案 0 :(得分:2)
编辑:由于图片似乎使用了无根使用方式 r 您可以尝试以下方法:
docker cp ex.txt my_container:$HOME/my_folder/ex.txt
您应该确保my_folder
已经在容器中,以确保首先运行此命令:
docker exec my_container_name mkdir -p $HOME/my_folder
答案 1 :(得分:1)
请正确阅读offical文档。
也请检出this。
在您的情况下,这应该可行。
docker cp ex.txt my_container:/my_folder/
更新1:
对于您而言,我怀疑容器中不存在/my_folder
,这就是错误所在。
还要引用official文档中提到的行。
docker cp不会为DEST_PATH创建父目录 不存在。
因此/my_folder
目录不会自动创建。
执行此操作。 docker exec -it my_container mkdir /my_folder
,然后运行docker cp命令。
更新2:
如果没有任何效果,请尝试一下,它对我有用。
$ cat /root/ex.txt
abc
$ docker run -itd alpine sh
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
921b31ab772b: Pull complete
Digest: sha256:ca1c944a4f8486a153024d9965aafbe24f5723c1d5c02f4964c045a16d19dc54
Status: Downloaded newer image for alpine:latest
35ad53b81c30f675b28a53e6a266f039cf49e90705d41e499deb4f17ab900255
$
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
35ad53b81c30 alpine "sh" 3 seconds ago Up 2 seconds mystifying_babbage
$
$ docker exec -it 35ad53b81c30 sh
/ # ls
bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
/ # mkdir /my_folder
$
$ docker cp /root/ex.txt mystifying_babbage:/my_folder/
$
$ docker exec -it 35ad53b81c30 sh
/ # ls /my_folder/
ex.txt
/ # cat /my_folder/ex.txt
abc
/ #
希望这会有所帮助。
答案 2 :(得分:0)
确保容器名称中也没有错字,否则也会出现相同的错误