image - Docker Bind 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/lib/tomcat9"
CMD $CATALINA_HOME/bin/catalina.sh run
这将创建一个图像,其中目录/var/lib/tomcat9
包含以下目录
conf lib logs webapps work
这些目录已经填充。
在主机上,我的目录/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 应用程序的标准设置是什么?
解决方案
推荐阅读
- json - PySpark 从 excel 中读取,只有一列 json 格式
- javascript - 如果所有孩子都上课,如何向父母添加课程?
- apache-spark - 将数据插入 Hudi 表时观察到性能下降
- angular - 路由 Angular 8 与 CSHTML 页面集成
- asp.net - 如何确保在网络场中只安排一次 Hangfire 作业
- windows - 如何阻止控制台窗口在 Visual Studio 2019 中关闭?
- javascript - 工厂职能效率
- ruby-on-rails - Rails 6:使用 GET 而不是 DELETE 链接到 destroy_user_session_path
- java - 如何使用 lambda 表达式在 java 中按月计算排名?
- javascript - 检查对象数组中是否存在键/值对 - Javascript