docker之更新jar問題
Dockerfile
# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基礎(chǔ)鏡像使用java FROM java:8 # 作者 MAINTAINER eangulee <eangulee@gmail.com> # VOLUME 指定了臨時(shí)文件目錄為/tmp。 # 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp VOLUME /tmp ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/data/dockerlearn.jar"]
這里的第四個(gè)參數(shù) /data/dockerlearn.jar,表示jar包在容器中的位置。
鏡像文件

jar放在data里面

1.生成鏡像 注意 點(diǎn)
?docker build -t dockerlearn .
2.創(chuàng)建容器 可能未啟動(dòng)
docker run --name dockerlearn -it -v /home/app/dockerlearn:/data -d -p 8088:8088 dockerlearn
- -- name dockerlearn :容器名
- -v /home/app/dockerlearn :掛載到主機(jī)該目錄下
- -p 8088:8088 dockerlearn :映射端口號(hào),和鏡像名稱
3.然后啟動(dòng)容器
docker start dockerlearn
4.這樣每次更新的jar包時(shí),將新jar包放入宿主機(jī)的“/home/app/dockerlearn”目錄下即可。
5.然后docker stop啟動(dòng)的容器,然后再docker start容器就可以了。就將新的應(yīng)用進(jìn)行了發(fā)布。
把 jar 放到到該目錄下

方式二
1.編寫一個(gè)sh腳本
名字自己隨便取一個(gè),我這里文件名叫“hello.sh”,內(nèi)容如下:
java -jar /usr/data/hello-2.0.0-SNAPSHOT.jar
文件存放到與宿主機(jī)掛載的容器內(nèi)部文件夾中
2.編寫Dockerfile文件
FROM java:8 EXPOSE 8888 CMD ["sh","-c","/usr/data/hello.sh"]
CMD [“sh”,"-c","/data/eurekaclient.sh"] 就是在容器啟動(dòng)時(shí)啟動(dòng)上一步創(chuàng)建的.sh腳本。
3.制作鏡像
docker build -t hello:demo .
4.創(chuàng)建容器
docker run -di --name=mydemo -p 8000:8888 -v /usr/local/apps/hello:/usr/data
5.完成并測(cè)試
這樣,就完成了,如果后面更新jar的話,直接將新的jar包替換到宿主機(jī)掛載的目錄下即可,如果文件名發(fā)生改變的話,可以直接修改sh腳本文件即可。更新完jar包之后記得需要重啟容器:
docker restart 容器名
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker安裝Elasticsearch7.6集群并設(shè)置密碼的方法步驟
本文主要介紹了docker安裝Elasticsearch7.6集群并設(shè)置密碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
用docker實(shí)現(xiàn)Redis主從配置的示例代碼
在三臺(tái)服務(wù)器上用Docker部署Redis主從模式:Server1作為主節(jié)點(diǎn),Server2和Server3配置為從節(jié)點(diǎn)并連接主節(jié)點(diǎn),通過(guò)環(huán)境變量指定主IP,驗(yàn)證復(fù)制狀態(tài)以確保高可用性2025-09-09
Docker容器編譯LNMP的實(shí)現(xiàn)示例
本文主要介紹了Docker容器編譯LNMP,使用Docker容器基于centos鏡像分別制作nginx鏡像,mysql鏡像和php鏡像使用編譯安裝的方式,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12
dockerfile的使用及使用dockerfile部署springboot項(xiàng)目的過(guò)程
Dockerfile是用來(lái)構(gòu)建Docker鏡像的文本文件,是由一條條構(gòu)建鏡像所需的指令和參數(shù)構(gòu)成的腳本,這篇文章主要介紹了dockerfile的使用,使用dockerfile部署springboot項(xiàng)目,需要的朋友可以參考下2023-04-04
docker打包鏡像后EasyExcel報(bào)錯(cuò),dockerfile缺少字體的解決
解決Docker打包鏡像后EasyExcel報(bào)錯(cuò)的問題:1. Dockerfile增加字體配置;2. 使用EasyExcel的write時(shí)添加"inMemory"參數(shù)為true,開啟內(nèi)存處理模式(不推薦,1W數(shù)據(jù)以內(nèi)可以考慮)2025-02-02
Docker連接mongodb實(shí)現(xiàn)過(guò)程及代碼案例
這篇文章主要介紹了Docker連接mongodb實(shí)現(xiàn)過(guò)程及代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Docker與docker-compose中volume參數(shù)的使用方式
文章介紹了Docker中的數(shù)據(jù)卷Volume的概念及其在宿主機(jī)和容器之間的數(shù)據(jù)共享和持久化,它詳細(xì)說(shuō)明了兩種數(shù)據(jù)掛載方式:通過(guò)宿主機(jī)絕對(duì)路徑掛載和通過(guò)卷標(biāo)映射掛載,包括匿名掛載和具名掛載,同時(shí),文章還展示了如何通過(guò)docker命令查看數(shù)據(jù)卷的宿主機(jī)目錄2024-11-11
使用docker搭建一套開發(fā)環(huán)境全家桶的詳細(xì)教程
這篇文章主要介紹了使用docker搭建一套開發(fā)環(huán)境全家桶,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

