Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Image Docker绑定装载读取初始容器数据_Image_Docker_Tomcat_Mount - Fatal编程技术网

Image Docker绑定装载读取初始容器数据

Image Docker绑定装载读取初始容器数据,image,docker,tomcat,mount,Image,Docker,Tomcat,Mount,描述问题 我创建了一个docker tomcat图像 FROM ubuntu:20.04 RUN apt-get update && apt-get upgrade -y RUN apt-get install openjdk-14-jre-headless -y RUN apt-get install tomcat9 -y ENV CATALINA_HOME="/usr/share/tomcat9" ENV CATALINA_BASE="/var/

描述问题

我创建了一个docker tomcat图像

FROM ubuntu:20.04
RUN apt-get update && apt-get upgrade -y
RUN apt-get install openjdk-14-jre-headless -y
RUN apt-get install tomcat9 -y
ENV CATALINA_HOME="/usr/share/tomcat9"
ENV CATALINA_BASE="/var/lib/tomcat9"
CMD $CATALINA_HOME/bin/catalina.sh run
这将创建一个映像,其中目录
/var/lib/tomcat9
包含以下目录
conf lib记录webapps的工作情况
这些目录已经填充

在主机上,我有一个目录
/some/path/tomcat9
,它是空的

如何运行此映像的容器(使用哪个绑定装载设置)因此,主机目录
/some/path/tomcat9
将反映容器目录
/var/lib/tomcat9
的初始状态,并且对主机目录
/some/path/tomcat9
所做的更改也将对容器目录
/var/lib/tomcat9
进行

尝试

  • 如果要使用命名卷,则必须以root用户身份执行任何更改
  • 如果使用默认绑定装载设置,则容器目录
    /var/lib/tomcat9
    将删除其所有内容,以匹配主机目录
    /some/path/tomcat9
其他问题

  • 如果没有解决此问题的绑定装载设置。你能建议一些解决办法,不包括在我的web应用程序中的每一个小更改上重建一个新映像吗
  • 在docker上开发tomcat应用程序的标准设置是什么

我看到的几乎每一个Java问题
都将一个内置的
.jar
.war
文件复制到图像中;因此,在Java之外进行日常开发,当您有特别需要在Docker环境中运行的更改时,重建映像(包括应用程序jar)。@DavidMaze我想使用Docker环境进行开发。在每一个小改动上重建图像似乎不是一个好的解决方案;重建映像应该非常快(同样,如果只是
将jar文件复制到Tomcat映像中,尤其如此)。