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

來訪問一下我們接口,做連通性驗(yàn)證測試:
注意這里的地址是本地地址,因?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的詳解請閱讀本專欄上一篇文章!
一個(gè)極簡的例子:
# 拉取基礎(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è)置端口號,此處只開放一個(gè)端口8083 EXPOSE 8083 # 執(zhí)行命令,此處運(yùn)行app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","app.jar"]
五、打包Docker鏡像
運(yùn)行一條命令即可(注意最后有個(gè).號):
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
以上是沒有后臺運(yùn)行的情況,如果要后臺運(yùn)行,則添加-d參數(shù)即可:
// -p后面有兩個(gè)端口,分別是:宿主機(jī)端口:容器端口 docker run -d -p 8083:8083 --name=hello_spring hello_spring:v1.0
非后臺運(yùn)行之后效果如下:

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

到此這篇關(guān)于Springboot打包為Docker鏡像并部署的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Springboot打包Docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)步驟
- 詳解springboot項(xiàng)目docker部署實(shí)踐
- 使用Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)方法
- Docker部署SpringBoot應(yīng)用的實(shí)現(xiàn)步驟
- 如何利用Docker部署一個(gè)簡單的springboot項(xiàng)目
- SpringBoot項(xiàng)目Docker部署三種方式
- Docker一鍵部署SpringBoot項(xiàng)目的多種方式
- Docker + Spring Boot完美部署的操作流程
相關(guān)文章
怎樣將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中
本文文章給大家介紹如何將一個(gè)JAR包添加到Java應(yīng)用程序的Boot?Classpath中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的的朋友參考下吧2023-11-11
Spring事件監(jiān)聽機(jī)制使用和原理示例講解
Spring事件監(jiān)聽機(jī)制是一個(gè)很不錯(cuò)的功能,我們在進(jìn)行業(yè)務(wù)開發(fā)的時(shí)候可以引入,在相關(guān)的開源框架中也是用它的身影,比如高性能網(wǎng)關(guān)ShenYu中就使用了Spring事件監(jiān)聽機(jī)制來發(fā)布網(wǎng)關(guān)的更新數(shù)據(jù),它可以降低系統(tǒng)的耦合性,使系統(tǒng)的擴(kuò)展性更好2023-06-06
SpringBoot整合EasyExcel實(shí)現(xiàn)批量導(dǎo)入導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合EasyExcel實(shí)現(xiàn)批量導(dǎo)入導(dǎo)出功能的相關(guān)知識,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考下2024-03-03
詳解Spring MVC/Boot 統(tǒng)一異常處理最佳實(shí)踐
在 Web 開發(fā)中, 我們經(jīng)常會(huì)需要處理各種異常,這篇文章主要介紹了詳解Spring MVC/Boot 統(tǒng)一異常處理最佳實(shí)踐,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

