掛載方式啟動docker鏡像(加載外部配置,無需重新打鏡像啟動)


前言:

在實際生產應用中尤其是測試階段可能需要頻繁修改程序包內application.properties文件,然后重新打鏡像,這樣不斷打鏡像消耗了大量的精力和時間,現在通過掛載方式,讀取外部配置文件的方式,實現不用打鏡像就修改程序包內的配置文件,簡化步驟,提高效率(部分圖片是縮放了的,看不清的話可以點擊就放大)

1.准備需要打鏡像的文件,把所有的文件放在一個realware文件夾里,realware下有三個文件

①config文件夾里放的是需要掛載的配置文件application.properties,就是通過修改該配置文件實現修改鏡像程序包內的配置文件

②realware是war解壓后的文件(程序的war包解壓出來),上傳上去

③Dockerfile里放打鏡像的命令,內容如下

FROM tomcat:9.0

COPY ./realware /usr/local/tomcat/webapps/realware

ADD  ./config /usr/local/tomcat/webapps/realware/WEB-INF/classes/config

EXPOSE 8080

CMD ["/usr/local/tomcat/bin/catalina.sh","run"]

命令解釋:

FROM tomcat:9.0   下載tomcat

COPY ./realware /usr/local/tomcat/webapps/realware  復制realware程序包到tomcat下

ADD  ./config /usr/local/tomcat/webapps/realware/WEB-INF/classes/config  掛載config文件到程序的config(程序中可以沒有該config文件,該命令可以直接添加)

2.打鏡像,注意3.0.0 后面有個空格和.

docker image build -t realware:3.0.0 .

 

3.docker 掛載方式啟動鏡像啟動

docker run -p 8080:8080 --name realware -v /home/realware/config:/usr/local/tomcat/webapps/realware/WEB-INF/classes/config -d realware:3.0.0

命令解釋:

8080:8080  對外映射8080端口,對內轉發也是8080端口

--name realware 啟動的鏡像起了一個realware的名字

/home/realware/config 本地目錄,掛載的文件

/usr/local/tomcat/webapps/realware/WEB-INF/classes/config  覆蓋容器中的目錄的配置,config下原本有application.properties

realware:3.0.0         需要啟動的鏡像

 由於我之前啟動過realware的鏡像,現在需要刪除掉原來的這個鏡像

 

docker rm 7257473a1f1ed717d4ff95ddb6c44ad420bb1625df4d874843dd53a991d710b6

再重新執行命令:

docker run -p 8080:8080 --name realware -v /home/realware/config:/usr/local/tomcat/webapps/realware/WEB-INF/classes/config -d realware:3.0.0

啟動成功

4.查看啟動日志:

docker logs -f 2e4a437a15d31617c2237e4abf1627ef81116c5cfdf2a6caf896ca2fcea06a39

看到日志已經打印出獲取的值了JDTEST

 

 注意該值是從掛載文件config下的application.properties里拿的

 

下面我們修改該值,實現掛載啟動外部配置文件,不需要重打docker鏡像啟動,修改application.properties完后上傳到config下

 

server.context-path=/realware
server.port=8087
evoucher.model.SignService=JDTESTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

關掉剛剛啟動的鏡像, 刪除占用realware的容器名字

docker rm 容器id

重新啟動

docker run -p 8080:8080 --name realware -v /home/realware/config:/usr/local/tomcat/webapps/realware/WEB-INF/classes/config -d realware:3.0.0

 

查看日志,r日志已經打印出修改后的值,JDTESTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

成功了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM