Docker:如何将文件从容器中的一个文件夹复制到另一个文件夹?
我想将我编译的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
我怎样才能从一个文件夹复制到另一个在同一个容器中?
更好的解决scheme是使用卷来绑定Docker容器中的单个war文件,就像这里所做的那样。
为什么你的命令失败
您正在运行的命令尝试访问dockerfile上下文无关的文件。 当你使用docker build .
生成图像docker build .
守护进程向构build器发送context
,在构build期间只有这些文件是可访问的。 在docker build .
上下文是.
,当前目录。 因此,它将无法访问/tmp/projects/myproject/target/myproject.war
。
从容器内复制
另一种select是在容器内进行复制。 首先使用卷来装载容器内的本地文件夹,然后使用docker exec -it <container_name> bash
进入docker exec -it <container_name> bash
,然后复制所需的文件。
build议
但是,我仍然强烈推荐使用
docker run -v "/tmp/projects/myproject/target/myproject.war:/usr/local/tomcat/webapps/myproject.war" <image_name>