Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从主机到容器的docker cp不工作_Docker_Copy - Fatal编程技术网

从主机到容器的docker cp不工作

从主机到容器的docker cp不工作,docker,copy,Docker,Copy,我不熟悉docker的概念,并尝试将一些文件从主机复制到容器中。假设在运行以下操作时,我的docker name是我的\u docker: docker cp my_docker:/usr/local/src/test.txt test.txt 它将test.txt文件从我的容器复制到本地主机。但反过来做是行不通的。命令如下: docker cp test.txt my_docker:/usr/local/src 我有什么事要做吗?任何帮助都将不胜感激 谢谢在第二个命令中,您似乎试图将tes

我不熟悉docker的概念,并尝试将一些文件从主机复制到容器中。假设在运行以下操作时,我的docker name是我的\u docker:

docker cp my_docker:/usr/local/src/test.txt test.txt
它将test.txt文件从我的容器复制到本地主机。但反过来做是行不通的。命令如下:

docker cp test.txt my_docker:/usr/local/src
我有什么事要做吗?任何帮助都将不胜感激


谢谢

在第二个命令中,您似乎试图将test.txt复制到名为src的/usr/local中。尝试将/添加到目标路径的末尾:
docker cp test.txt my\u docker:/usr/local/src/
要使用文件名进行复制,请执行以下操作:
docker cp test.txt my_docker:/usr/local/src/newname.txt
在容器中重命名它。

如注释中所述,您正在另一个容器中查找复制的文件

$ docker run --name my_container alpine
$ docker cp test.txt my_container:/tmp/test.txt
$ docker run alpine ls -l /tmp
total 0
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
6224c947fbbd        alpine              "ls -l /tmp"        11 seconds ago       Exited (0) 10 seconds ago                           brave_neumann
22951689a3e4        alpine              "/bin/sh"           About a minute ago   Exited (0) About a minute ago                       my_container
您已将文件复制到
my\u容器中
,但在
brave\u neumann
中运行了
ls-l/tmp
命令

如果要将文件复制到容器中,然后在容器中使用这些文件,则必须在容器仍在运行时复制这些文件,或者将它们复制到docker卷。 将该卷装载到一个新容器中,然后让它看到您复制的文件

$ docker volume create my_volume
my_volume
$ docker run --name my_container2 -v my_volume:/data alpine echo OK
OK
$ docker cp test.txt my_container2:/data/test.txt
$ docker run -v my_volume:/data alpine ls -l /data
total 4
-rw-r--r--    1 1006     1006            29 Oct  6 19:43 test.txt
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
15b36ccd535f        alpine              "ls -l /data"       7 seconds ago       Exited (0) 6 seconds ago                        agitated_khorana
b9d4c9e0902f        alpine              "echo OK"           54 seconds ago      Exited (0) 53 seconds ago                       my_container2
6224c947fbbd        alpine              "ls -l /tmp"        2 minutes ago       Exited (0) 2 minutes ago                        brave_neumann
22951689a3e4        alpine              "/bin/sh"           3 minutes ago       Exited (0) 3 minutes ago                        my_container
$ 

您是否尝试使用
docker cp test.txt my\u docker:/usr/local/src/test.txt
?是。仍然不起作用。它上周工作正常,但不再工作。你收到任何错误消息吗?如果是的话,你能把它贴在这里吗。我试过使用最新的docker,命令似乎有效。@nimafl我正在使用
docker run-it docker\u file\u name
将交互式shell获取到我正在运行的docker,并检查文件是否被复制。噢,每次这样做,基本上都是用一个新的随机名称和唯一id运行一个新的docker,所以,基本上你是在尝试将文件复制到一个docker中,并检查一个全新的docker的结果!