docker部署運(yùn)行jar全過程
進(jìn)入微服務(wù)時代后,大家都使用springboot來開發(fā)微服務(wù),然后打成jar包放到docker容器中運(yùn)行。
通常的方式是將jar包以鏡像images形式安裝到docker中,然后創(chuàng)建容器運(yùn)行。
并且idea開發(fā)工具還支持直接在項(xiàng)目編譯的時候生成鏡像,也比較方面。
但是我在用上述方法的時候發(fā)現(xiàn)每個微服務(wù)jar包本身并不大,只有不到幾十M大小,但是生成的鏡像卻有500M大?。ㄖ饕抢锩姘薺ava等的環(huán)境),而且每次更新jar包都得更新鏡像,用起來不方面,看起來也不舒服,所以在想有沒有更好的方法。
我們都知道jar是運(yùn)行在java環(huán)境中,所以只要容器中有java環(huán)境就可以運(yùn)行jar包,鏡像方式運(yùn)行的原理也是如此。因此我們基于java鏡像就可以實(shí)現(xiàn)jar包運(yùn)行。
1、拉取java鏡像
[root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker pull java:8 [root@iZbp13sno1lc2yxlhjc4b3Z ~]# docker images java 8 d23bdf5b1b1b 3 years ago 643MB
拉取java 8的鏡像
2、jar包上傳到服務(wù)器
[root@iZbp13sno1lc2yxlhjc4b3Z pms]# ls card-api-pms-0.0.1.jar
將springboot的jar包上傳到服務(wù)器指定目錄。
3、創(chuàng)建容器運(yùn)行jar
[root@iZbp13sno1lc2yxlhjc4b3Z pms]docker run -d --name ys-pms -p 8781:8081 \ -v /app/pms/card-api-pms-0.0.1.jar:/usr/app.jar java:8 \ java -jar -Xms256m -Xmx256m /usr/app.jar
命令解析:
- -p 8781:8081 端口映射,8081是jar里面內(nèi)置tomcat的端口。
- -v /app/pms/card-api-pms-0.0.1.jar:/usr/app.jar 將容器中/usr/app.jar文件掛載到主機(jī)/app/pms/card-api-pms-0.0.1.jar文件,這個是關(guān)鍵。
- java:8 使用java 8的版本鏡像
- java -jar -Xms256m -Xmx256m /usr/app.jar 運(yùn)行/usr/app.jar的jar包,前面已經(jīng)將此jar包跟主機(jī)文件掛載,所以實(shí)際運(yùn)行的就是主機(jī)目錄下的card-api-pms-0.0.1.jar;另外在運(yùn)行jar包的時候指定了分配給jvm的內(nèi)存大小,你不指定就會使用默認(rèn)機(jī)制占用內(nèi)存。
登錄portainer控制臺查看服務(wù)運(yùn)行情況:
總結(jié)
好了,現(xiàn)在jar包已經(jīng)在運(yùn)行了。如果我們的jar包更新了,只需要將主機(jī)上的jar包替換重啟即可,是不是很方便。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像
本篇文章主要介紹了使用Dockerfile創(chuàng)建帶Apache服務(wù)的CentOS Docker鏡像,具有一定的參考價值,有興趣的可以了解一下。2016-12-12docker啟動鏡像失敗后如何用日志logs查找失敗原因及解決
在使用docker的時候,在某些未知的情況下可能啟動了容器,但是過了沒幾秒容器自動退出了,這個時候如何排查問題呢?下面這篇文章主要給大家介紹了關(guān)于docker啟動鏡像失敗后如何用日志logs查找失敗原因及解決的相關(guān)資料,需要的朋友可以參考下2023-05-05Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法
這篇文章主要介紹了Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式
這篇文章主要介紹了docker安裝Jenkins執(zhí)行構(gòu)建jar運(yùn)行方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05