簡體   English   中英

如何加速Docker容器啟動時間?

[英]How to accelerate Docker container boot time?

我是使用Docker容納應用程序的新手。 我可以部署包含war文件的容器。 戰爭基本上是一個JAVA Web應用程序/ servlet,它在收到最終用戶的請求后發回一個視頻文件。 使用docker的應用程序部署是成功的,應用程序正常工作。 但是我的啟動時間有些問題。

從我通過命令docker run -it -d -p 8080:8080 surrogate創建容器的那一刻起,容器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 

(代表OP發布)

首先在“docker run”命令中刪除-d以查看后台發生了什么。 我注意到戰爭部署階段耗時很長(大約15-20分鍾!!!)

在我的情況下,原因是Dockerfile中的tomcat版本與我將Web應用程序導出為WAR的環境中的Tomcat版本不同。 (如何檢查JRE版本:在終端輸入: JAVA -version ,檢查Tomcat版本:從eclipse,當你導出時,它顯示版本)。

在我的Dockerfile案例中,我有:

FROM tomcat:7.0.72-jre7

我改成了:

FROM tomcat:6.0-jre7

現在只需不到10秒!

簡而言之,確保Dockerfile中的Tomcat版本和JRE版本與將Java Web應用程序導出為WAR的環境相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM