我发现抓住Dockerfile有点困难。请考虑dockerfile中创建tomcat映像的以下命令:
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-${TOMCAT_MAJOR_VERSION}/v${TOMCAT_MINOR_VERSION}/bin/apache-tomcat-${TOMCAT_MINOR_VERSION}.tar.gz &&\
tar zxf apache-tomcat-*.tar.gz
ADD helloWorld.war ${CATALINA_HOME}/webapps/
CMD ["/opt/tomcat/bin/tomcat.sh"]
我正在下载tomcat并添加war文件然后启动tomcat。
答案 0 :(得分:0)
RUN
和ADD
将在构建时运行docker build
),CMD/ENTRYPOINT
将在运行时(docker run
)执行。
RUN
,并将相应的图层添加到docker镜像中。
CMD
是容器启动时执行的默认命令。
ADD/COPY
在构建图片时将文件从主机复制到泊坞窗图像。
helloWorld.war将打包在docker镜像中。如果您想在docker run
处提供war文件,可以使用volumes。您可以挂载tomcat的webapps目录。
docker run -v /path/to/war/file/in/host:/path/to/webapps/war/in/container tomcat
答案 1 :(得分:0)
在构建映像时执行RUN和ADD命令。 CMD是运行映像时执行的默认命令。 CMD在容器内部运行,因此它从"内部"中获取helloWorld.war。 (第一层)容器。