Docker:如何将文件从容器中的一个文件夹复制到另一个文件夹?
我想将编译好的war文件复制到Docker容器中的tomcat部署文件夹中。当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
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我在第二个选项中谈到了这一点。从容器内部复制