我是新的容器应用程序使用码头。我可以部署一个容器,包括一个war文件。war基本上是一个JAVA应用程序/servlet,它在接收到最终用户的请求时返回一个视频文件。使用docker部署应用程序是成功的,而且应用程序运行良好。但是,我对它的启动时间有一些问题。
从我通过点击命令docker run -it -d -p 8080:8080 surrogate创建容器的那一刻起,容器就需要5-6分钟的时间才能开始工作,这意味着容器生命周期的前5-6分钟没有响应最终用户的请求,然后它就可以正常工作了。有什么办法可以加快启动时间吗?
Dockerfile包括:
FROM tomcat:7.0.72-jre7
ADD surrogate-V1.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]
WORKDIR "/usr/local/tomcat/"
RUN wget https://www.dropbox.com/s/1r8awydc05ra8wh/a.mp4?dl=1
RUN cp a.mp4\?dl\=1 lego.mp4 发布于 2017-05-23 19:41:56
(代表“任择议定书”张贴)。
首先,在"docker“命令中去掉-d,查看后台发生了什么。我注意到战争部署阶段花了这么长时间(大约15-20分钟!)
在我的例子中,原因是Dockerfile中的tomcat版本与我将web应用程序导出为WAR的环境中的Tomcat版本不同。(如何检查JRE版本:在终端输入:JAVA -version中,检查Tomcat版本: from eclipse,在导出时,它将显示版本)。
就我在Dockerfile的情况而言,我有:
FROM tomcat:7.0.72-jre7我把它改成:
FROM tomcat:6.0-jre7现在只需不到10秒!
简而言之,确保Dockerfile中的Tomcat版本和JRE版本与您作为WAR导出Java应用程序的环境相同。
https://stackoverflow.com/questions/44013586
复制相似问题