Springboot打包為Docker鏡像并部署的實(shí)現(xiàn)
一、Springboot項(xiàng)目運(yùn)行正常
打包前,Springbooot項(xiàng)目在本地必須是運(yùn)行正常的。我們這里使用本專欄寫起來的項(xiàng)目,如下所示:

來訪問一下我們接口,做連通性驗(yàn)證測(cè)試:
注意這里的地址是本地地址,因?yàn)槲沂窃诒镜豂DEA里面運(yùn)行的項(xiàng)目!

二、Maven打包項(xiàng)目
執(zhí)行如下命令即可:
// 先清空再打包 mvn clean package
打包成功之后如下所示,提示BUILD SUCCESS,target目錄下會(huì)有打好的jar包:

注意:此處我們打包為jar包,直接部署在Docker中。如果打?yàn)閣ar包,則需要在Docker中先部署Tomcat(或者直接拉取Tomcat鏡像),然后再將war包部署在Tomcat中,我們不搞那么復(fù)雜。
三、打包鏡像前準(zhǔn)備
1、創(chuàng)建一個(gè)文件夾
mkdir dockerFile
2、進(jìn)入文件夾,創(chuàng)建文件:Dockerfile(必須是這個(gè)文件名)
cd dockerFile touch Dockerfile
3、將我們Springboot打包成的jar包也放在這個(gè)文件夾
ls Dockerfile hello_springboot.jar
四、關(guān)鍵一步:編寫Dockerfile
Dockerfile的詳解請(qǐng)閱讀本專欄上一篇文章!
一個(gè)極簡(jiǎn)的例子:
# 拉取基礎(chǔ)鏡像 FROM java:8 # 設(shè)置作者信息 MAINTAINER suiyi "suiyi@666.com" # 把hello_springboot.jar添加到容器里,并重命名為app.jar # 因?yàn)閔ello_springboot.jar和Dockerfile在同一個(gè)目錄下,所以只寫文件名即可 ADD hello_springboot.jar app.jar # 設(shè)置端口號(hào),此處只開放一個(gè)端口8083 EXPOSE 8083 # 執(zhí)行命令,此處運(yùn)行app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","app.jar"]
五、打包Docker鏡像
運(yùn)行一條命令即可(注意最后有個(gè).號(hào)):
docker build -f Dockerfile -t hello_spring:v1.0 .
-f:指定Dockerfile文件
-t:指定鏡像的標(biāo)簽信息
可以使用如下命令查看具體參數(shù)的作用:
docker build --help
執(zhí)行成功后如下所示:

六、運(yùn)行鏡像
先看看有沒有我們的docker鏡像:
docker images
運(yùn)行我們的鏡像:
// -p后面有兩個(gè)端口,分別是:宿主機(jī)端口:容器端口 docker run -p 8083:8083 --name=hello_spring hello_spring:v1.0
以上是沒有后臺(tái)運(yùn)行的情況,如果要后臺(tái)運(yùn)行,則添加-d參數(shù)即可:
// -p后面有兩個(gè)端口,分別是:宿主機(jī)端口:容器端口 docker run -d -p 8083:8083 --name=hello_spring hello_spring:v1.0
非后臺(tái)運(yùn)行之后效果如下:

七、驗(yàn)證部署的項(xiàng)目
我們來訪問一下我們接口,做連通性測(cè)試:
注意這里的地址是部署Docker機(jī)器的地址,可見我們已經(jīng)成功將我們的Springboot項(xiàng)目打包成Docker并部署運(yùn)行了!

到此這篇關(guān)于Springboot打包為Docker鏡像并部署的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Springboot打包Docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot服務(wù)docker打包分層的實(shí)現(xiàn)
- 將Java(SpringBoot)項(xiàng)目打包為Docker鏡像的三種方法
- 淺析如何將多個(gè)SpringBoot項(xiàng)目打包到一個(gè)Docker容器中
- Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式
- SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐
- SpringBoot打包成Docker鏡像的幾種實(shí)現(xiàn)方式
- SpringBoot多模塊打包部署Docker的項(xiàng)目實(shí)戰(zhàn)
- 一步步教你把SpringBoot項(xiàng)目打包成Docker鏡像
- SpringBoot打包docker鏡像發(fā)布的詳細(xì)步驟
- SpringBoot3.x打包Docker容器的實(shí)現(xiàn)
- Springboot微服務(wù)打包Docker鏡像流程解析
- Springboot打包docker的多種方法實(shí)現(xiàn)
相關(guān)文章
解讀file.exists(),file.isFile()和file.isDirectory()的區(qū)別
本文介紹了Java中的File類的三個(gè)方法:file.exists()、file.isFile()和file.isDirectory(),并詳細(xì)解釋了它們的區(qū)別和使用場(chǎng)景2025-02-02
SpringBoot單元測(cè)試中@SpyBean使用小結(jié)
本文主要介紹了SpringBoot單元測(cè)試中@SpyBean使用小結(jié),@SpyBean用于部分模擬SpringBean,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
SpringBoot + Druid + Dynamic Dataso
本文通過實(shí)例代碼給大家介紹SpringBoot整合Druid與多數(shù)據(jù)源配置,涵蓋自動(dòng)裝配流程、數(shù)據(jù)源動(dòng)態(tài)切換方案及監(jiān)控功能實(shí)現(xiàn),感興趣的朋友一起看看吧2025-08-08
java判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例
下面小編就為大家?guī)硪黄猨ava判定數(shù)組或集合是否存在某個(gè)元素的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
使用lombok注解導(dǎo)致mybatis-plus TypeHandler失效的解決
這篇文章主要介紹了使用lombok注解導(dǎo)致mybatis-plus TypeHandler失效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Springboot 整合 Java DL4J 打造文本摘要生成系統(tǒng)
本文介紹了如何使用SpringBoot整合JavaDeeplearning4j構(gòu)建文本摘要生成系統(tǒng),該系統(tǒng)能夠自動(dòng)從長(zhǎng)篇文本中提取關(guān)鍵信息,生成簡(jiǎn)潔的摘要,幫助用戶快速了解文本的主要內(nèi)容,技術(shù)實(shí)現(xiàn)包括使用LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行模型構(gòu)建和訓(xùn)練,并通過SpringBoot集成RESTfulAPI接口2024-11-11
Java使用Spire.Doc for Java實(shí)現(xiàn)Word自動(dòng)化插入圖片
在日常工作中,Word文檔是不可或缺的工具,而圖片作為信息傳達(dá)的重要載體,其在文檔中的插入與布局顯得尤為關(guān)鍵,下面我們就來看看如何使用Spire.Doc for Java實(shí)現(xiàn)Word文檔自動(dòng)化插入圖片吧2025-12-12

