Springboot打包為Docker鏡像并部署的實現(xiàn)
一、Springboot項目運(yùn)行正常
打包前,Springbooot項目在本地必須是運(yùn)行正常的。我們這里使用本專欄寫起來的項目,如下所示:
來訪問一下我們接口,做連通性驗證測試:
注意這里的地址是本地地址,因為我是在本地IDEA里面運(yùn)行的項目!
二、Maven打包項目
執(zhí)行如下命令即可:
// 先清空再打包 mvn clean package
打包成功之后如下所示,提示BUILD SUCCESS
,target目錄下會有打好的jar包:
注意:此處我們打包為jar包,直接部署在Docker中。如果打為war包,則需要在Docker中先部署Tomcat(或者直接拉取Tomcat鏡像),然后再將war包部署在Tomcat中,我們不搞那么復(fù)雜。
三、打包鏡像前準(zhǔn)備
1、創(chuàng)建一個文件夾
mkdir dockerFile
2、進(jìn)入文件夾,創(chuàng)建文件:Dockerfile(必須是這個文件名)
cd dockerFile touch Dockerfile
3、將我們Springboot打包成的jar包也放在這個文件夾
ls Dockerfile hello_springboot.jar
四、關(guān)鍵一步:編寫Dockerfile
Dockerfile的詳解請閱讀本專欄上一篇文章!
一個極簡的例子:
# 拉取基礎(chǔ)鏡像 FROM java:8 # 設(shè)置作者信息 MAINTAINER suiyi "suiyi@666.com" # 把hello_springboot.jar添加到容器里,并重命名為app.jar # 因為hello_springboot.jar和Dockerfile在同一個目錄下,所以只寫文件名即可 ADD hello_springboot.jar app.jar # 設(shè)置端口號,此處只開放一個端口8083 EXPOSE 8083 # 執(zhí)行命令,此處運(yùn)行app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","app.jar"]
五、打包Docker鏡像
運(yùn)行一條命令即可(注意最后有個.
號):
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后面有兩個端口,分別是:宿主機(jī)端口:容器端口 docker run -p 8083:8083 --name=hello_spring hello_spring:v1.0
以上是沒有后臺運(yùn)行的情況,如果要后臺運(yùn)行,則添加-d
參數(shù)即可:
// -p后面有兩個端口,分別是:宿主機(jī)端口:容器端口 docker run -d -p 8083:8083 --name=hello_spring hello_spring:v1.0
非后臺運(yùn)行之后效果如下:
七、驗證部署的項目
我們來訪問一下我們接口,做連通性測試:
注意這里的地址是部署Docker機(jī)器的地址,可見我們已經(jīng)成功將我們的Springboot項目打包成Docker并部署運(yùn)行了!
到此這篇關(guān)于Springboot打包為Docker鏡像并部署的實現(xiàn)的文章就介紹到這了,更多相關(guān)Springboot打包Docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Spring Boot獲取bean的3種方式
這篇文章主要介紹了關(guān)于Spring Boot獲取bean的3種方式,在spring中ApplicationContext這個上下文對象是獲取bean的基礎(chǔ),需要的朋友可以參考下2023-04-04Java之Spring認(rèn)證使用Profile配置運(yùn)行環(huán)境講解
這篇文章主要介紹了Java之Spring認(rèn)證使用Profile配置運(yùn)行環(huán)境講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07大廠禁止SpringBoot在項目使用Tomcat容器原理解析
這篇文章主要為大家介紹了大廠禁止SpringBoot在項目使用Tomcat原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07解決SecureRandom.getInstanceStrong()引發(fā)的線程阻塞問題
這篇文章主要介紹了解決SecureRandom.getInstanceStrong()引發(fā)的線程阻塞問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12通過Java?Reflection實現(xiàn)編譯時注解正確處理方法
Java注解是一種標(biāo)記在JDK5及以后的版本中引入,用于Java語言中向程序添加元數(shù)據(jù)的方法,這篇文章主要介紹了通過Java?Reflection實現(xiàn)編譯時注解處理方法,需要的朋友可以參考下2023-06-06