一步步教你把SpringBoot項目打包成Docker鏡像
把SpringBoot項目打包成Docker鏡像有兩種方案:
全自動化:先打好docker鏡像倉庫,然后在項目的maven配置中配置好倉庫的地址,在項目里配置好Dockerfile文件,這樣可以直接在idea中打包好后自動上傳到鏡像倉庫,然后去服務(wù)器上啟動這個鏡像就行了。
半自動化:半自動化又有兩種方案,一種是Dockerfile文件放在項目里面,一種是放在項目外面。
- 放在項目里面:springboot pom.xml中配置maven插件支持,打包時會使用項目里面的dockerfile,如果沒配置插件支持會報錯找不到dockerfile文件
- 放在項目外面:springboot還是打包成普通的jar,然后把這個jar上傳到服務(wù)器,同時在服務(wù)器創(chuàng)建一個Dockerfile文件,執(zhí)行docker build命令,把這個jar構(gòu)建成一個docker鏡像,然后通過鏡像執(zhí)行。
一般來說用半自動化比全自動化用的多,本文用的算是半自動化方式的第二種,總體來說有一下幾個步驟:
1. 構(gòu)建SpringBoot項目


編寫一個controller

進(jìn)行本地測試

2. 打包應(yīng)用
點擊package將項目進(jìn)行打包

打包成功

cmd運行java -jar能夠運行成功

可以下載個Docker插件

3. 編寫dockerfile
在target里面創(chuàng)建Dockerfile文件,此時Dockerfile文件是高亮的

Dockerfile配置內(nèi)容(在Idea里面寫Dockerfile會有提示)
#發(fā)布到網(wǎng)上時只會把jar包和Dockerfile發(fā)布上去 COPY *.jar /app.jar #地址映射 CMD ["--server.port=8080"] #對外暴露端口 EXPOSE 8080 #執(zhí)行命令 ENTRYPOINT ["java","-jar","/app.jar"]
4. 構(gòu)建鏡像
將jar包和Dockerfile文件拿出來新建個文件夾放里面,按住shift鍵打開PowerShell
(注意:本人電腦上安裝的是Docker Desktop)

輸入命令構(gòu)建鏡像,firstdocker是鏡像名(最后的 . 表示 Dockerfile 文件在當(dāng)前目錄下)

查看構(gòu)建好的鏡像(不清楚命令的可以先學(xué)一下基礎(chǔ)命令)

鏡像構(gòu)建成功后運行容器(第一個為服務(wù)器8080端口,第二個8080為docker容器端口)

可以看容器是否在運行和日志信息

訪問成功

5. 發(fā)布運行
可以將鏡像上傳到dockerhub,以后使用Docker之后,給別人交付的就是一個鏡像即可!
總結(jié)
到此這篇關(guān)于把SpringBoot項目打包成Docker鏡像的文章就介紹到這了,更多相關(guān)SpringBoot項目打包Docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- springboot服務(wù)docker打包分層的實現(xiàn)
- 將Java(SpringBoot)項目打包為Docker鏡像的三種方法
- 淺析如何將多個SpringBoot項目打包到一個Docker容器中
- Docker打包SpringBoot鏡像的實現(xiàn)方式
- SpringBoot打包成Docker鏡像的項目實踐
- SpringBoot打包成Docker鏡像的幾種實現(xiàn)方式
- SpringBoot多模塊打包部署Docker的項目實戰(zhàn)
- SpringBoot打包docker鏡像發(fā)布的詳細(xì)步驟
- Springboot打包為Docker鏡像并部署的實現(xiàn)
- SpringBoot3.x打包Docker容器的實現(xiàn)
- Springboot微服務(wù)打包Docker鏡像流程解析
- Springboot打包docker的多種方法實現(xiàn)
相關(guān)文章
springboot集成mybaits-generator自動生成代碼的流程分析
這篇文章主要介紹了springboot集成mybaits-generator自動生成代碼的流程分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,感興趣的朋友一起看看吧2025-04-04
Java內(nèi)部類的實現(xiàn)原理與可能的內(nèi)存泄漏說明
這篇文章主要介紹了Java內(nèi)部類的實現(xiàn)原理與可能的內(nèi)存泄漏說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
JDBC查詢Map轉(zhuǎn)對象實現(xiàn)過程詳解
這篇文章主要介紹了JDBC查詢Map轉(zhuǎn)對象實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
SpringBoot項目中同時操作多個數(shù)據(jù)庫的實現(xiàn)方法
在實際項目開發(fā)中可能存在需要同時操作兩個數(shù)據(jù)庫的場景,本文主要介紹了SpringBoot項目中同時操作多個數(shù)據(jù)庫的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Springboot中@Value注解的場景用法及可能遇到的問題詳解
這篇文章主要給大家介紹了關(guān)于Springboot中@Value注解的場景用法及可能遇到問題的相關(guān)資料, @Value通常用于注入外部化屬性,即外部配置屬性的注入,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Springboot使用@Valid 和AOP做參數(shù)校驗及日志輸出問題
這篇文章主要介紹的Springboot使用@Valid 和AOP做參數(shù)校驗及日志輸出問題,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11

