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:如何将文件从容器中的一个文件夹复制到另一个文件夹?_Docker_Docker Compose - Fatal编程技术网

Docker:如何将文件从容器中的一个文件夹复制到另一个文件夹?

Docker:如何将文件从容器中的一个文件夹复制到另一个文件夹?,docker,docker-compose,Docker,Docker Compose,我想将编译好的war文件复制到Docker容器中的tomcat部署文件夹中。当COPY和ADD处理将文件从主机移动到容器时,我尝试了 RUN mv /tmp/projects/myproject/target/myproject.war /usr/local/tomcat/webapps/ 作为对答案的修改。但是我得到了错误 mv: cannot stat ΓÇÿ/tmp/projects/myproject/target/myproject.warΓÇÖ: No such file or

我想将编译好的war文件复制到Docker容器中的tomcat部署文件夹中。当
COPY
ADD
处理将文件从主机移动到容器时,我尝试了

RUN mv /tmp/projects/myproject/target/myproject.war /usr/local/tomcat/webapps/ 
作为对答案的修改。但是我得到了错误

mv: cannot stat ΓÇÿ/tmp/projects/myproject/target/myproject.warΓÇÖ: No such file or directory

如何在同一容器中从一个文件夹复制到另一个文件夹?

更好的解决方案是使用卷在docker容器中绑定单个war文件

为什么你的命令失败了 您正在运行的命令尝试访问与dockerfile上下文无关的文件。当您使用
docker build.
构建映像时,守护进程将
context
发送到构建器,并且在构建过程中仅可访问这些文件。在
docker build.
中,上下文是当前目录
。因此,它将无法访问
/tmp/projects/myproject/target/myproject.war

从容器内部复制 另一种选择是在容器内复制。首先使用装载容器内的本地文件夹,然后使用
docker exec-it bash进入容器内,然后复制所需的文件

推荐 但是,我还是强烈建议使用

docker run -v "/tmp/projects/myproject/target/myproject.war:/usr/local/tomcat/webapps/myproject.war" <image_name>
docker run-v”/tmp/projects/myproject/target/myproject.war:/usr/local/tomcat/webapps/myproject.war”

mv
工作正常,这意味着您的文件(
/tmp/projects/myproject/target/myproject.war
)不在那里。也许可以告诉我们你是如何把/生成这个文件的。我把源文件复制到
/tmp/projects/myproject/
并使用ant build生成.war文件。.war必须在容器中生成,因为我需要维护不同的环境。构建成功您可以在
mv
之前尝试执行
运行ls/tmp/projects/myproject/target/
,并在
mv
尝试之前查看您是否真的在容器中有东西或只是
bash
。实际上,这个构建有一个问题。谢谢你,埃德温!他想复制容器内的文件,从容器内的一个位置复制到容器内的另一个位置。@Edwin我在第二个选项中谈到了这一点。从容器内部复制