Linux+Docker+SpringBoot+IDEA一鍵自動(dòng)化部署的詳細(xì)步驟
Linux+Docker+SpringBoot+IDEA一鍵自動(dòng)化部署的步驟
記錄從打包到服務(wù)器配置上線全流程
安裝docker
詳細(xì)步驟請戳這里
用yum源安裝用yum源安裝
查看是否已安裝docker列表
yum list installed | grep docke
安裝docker
yum -y install docker
-y表示不詢問安裝,直到安裝成功,安裝完后再次查看安裝列表
開放2375端口,開啟遠(yuǎn)程訪問
vim /usr/lib/systemd/system/docker.service
這行:
ExecStart=/usr/bin/dockerd-current \
替換為:
ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
重新加載docker配置
systemctl daemon-reload // 1,重新加載配置文件 systemctl restart docker // 2,重啟docker
查看端口是否開啟
netstat -nptl
直接curl看是否生效
雖然開放此端口打包程序很方便,但是會導(dǎo)致一些安全問題,因此 可以限制訪問IP來解決,在云服務(wù)器中設(shè)置安全組即可
IDEA鏈接docker
第一步,遠(yuǎn)程鏈接docker:

成功后可見:

打鏡像包
大致流程如下,采用maven綁定的方式進(jìn)行打包鏡像,然后根據(jù)該鏡像建立一個(gè)docker容器,啟動(dòng)容器,即可
首先我們先創(chuàng)建一個(gè)DockerFile,路徑參考:

DockerFile文件內(nèi)容如下:
FROM java:8 VOLUME /tmp #docker-day1-1.0.jar為項(xiàng)目打包為jar包的名字,app.jar為別名 ADD docker-day1-1.0.jar app.jar #運(yùn)行的時(shí)候?qū)ν馓峁┑亩丝谀J(rèn)是8090,即便你在這里聲明了3000也不會改變默認(rèn)的端口8090 EXPOSE 8090 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
然后在pom文件里面配置docker-maven-plugin插件,在plugins節(jié)點(diǎn)下,添加一個(gè)plugin,內(nèi)容如下:
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--將插件綁定在某個(gè)phase執(zhí)行-->
<executions>
<execution>
<id>build-image</id>
<!--將插件綁定在package這個(gè)phase上。也就是說,用戶只需執(zhí)行mvn package ,就會自動(dòng)執(zhí)行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的鏡像名-->
<imageName>jason/${project.artifactId}</imageName>
<!--指定標(biāo)簽-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--指定 Dockerfile 路徑-->
<dockerDirectory>${project.basedir}/src/main/resources/docker</dockerDirectory>
<!--指定遠(yuǎn)程 docker api地址-->
<dockerHost>http://58.87.113.58:2375</dockerHost>
<!--這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路徑 此處配置的 即對應(yīng) target 目錄-->
<directory>${project.build.directory}</directory>
<!--需要包含的 jar包 ,這里對應(yīng)的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
配置完成,現(xiàn)在使用maven package,即可將我們的jar包打成docker鏡像,可以使用idea右側(cè)的快捷方式,
也可以使用命令:
mvn package
完成后,我們會在這里看見我們剛打好的鏡像包

運(yùn)行該鏡像,需要使用到docker的容器來承載它,我們右鍵創(chuàng)建

設(shè)置鏡像名稱,設(shè)置IP映射即可,我這里項(xiàng)目的port是8090,容器對外開放設(shè)置為8091

設(shè)置完之后我們點(diǎn)擊Run,訪問我們提前寫好的測試接口,測試結(jié)果

那么問題來了,我們開發(fā)的時(shí)候改完代碼就需要發(fā)布一次,不可能每次都先點(diǎn)一下package然后再run是吧,這樣多撈啊,我們把這兩個(gè)步驟串起來,不就行了嗎
繼續(xù)編輯我們剛剛的配置,添加一個(gè)maven步驟即可

那么我們再次修改代碼后,再點(diǎn)擊Run,即可在線上看到最新的程序了,至此一個(gè)簡單的一鍵部署就完成了

附:java源碼下載
到此這篇關(guān)于Linux+Docker+SpringBoot+IDEA一鍵自動(dòng)化部署的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Linux+Docker+SpringBoot+IDEA一鍵自動(dòng)化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA2021.2配置docker如何將springboot項(xiàng)目打成鏡像一鍵發(fā)布部署
- IDEA 配合 Dockerfile 部署 SpringBoot 工程的注意事項(xiàng)
- 在Idea中使用Docker部署SpringBoot項(xiàng)目的詳細(xì)步驟
- 淺析SpringBoot打包上傳到docker并實(shí)現(xiàn)多實(shí)例部署(IDEA版)
- 基于idea把springboot項(xiàng)目部署到docker
- java通過Idea遠(yuǎn)程一鍵部署springboot到Docker詳解
- IDEA 集成 Docker 插件一鍵部署 SpringBoot 應(yīng)用小結(jié)
相關(guān)文章
springboot+vue實(shí)現(xiàn)Token自動(dòng)續(xù)期(雙Token方案)
雙Token方案通過訪問令牌和刷新令牌提高用戶登錄安全性和體驗(yàn),訪問令牌有效期短,包含用戶信息,用于請求校驗(yàn),本文就來介紹一下springboot+vue實(shí)現(xiàn)Token自動(dòng)續(xù)期(雙Token方案),感興趣的可以了解一下2024-10-10
java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項(xiàng)算法示例
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之noDups去除重復(fù)項(xiàng)算法實(shí)現(xiàn)技巧,程序代碼非常簡單,關(guān)鍵在于循環(huán)與判定,需要的朋友可以參考下2016-08-08
SpringBoot整合quartz實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何整合quartz實(shí)現(xiàn)定時(shí)任務(wù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10
Java實(shí)現(xiàn)DES加密與解密,md5加密以及Java實(shí)現(xiàn)MD5加密解密類
這篇文章主要介紹了Java實(shí)現(xiàn)DES加密與解密,md5加密以及Java實(shí)現(xiàn)MD5加密解密類 ,需要的朋友可以參考下2015-11-11
es創(chuàng)建索引和mapping的實(shí)例
這篇文章主要介紹了es創(chuàng)建索引和mapping的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
java之向linux文件夾下寫文件無權(quán)限的問題
這篇文章主要介紹了java之向linux文件夾下寫文件無權(quán)限的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
springboot獲取真實(shí)ip地址的方法實(shí)例
在使用springboot時(shí),需要獲取訪問客戶端的IP地址,所以下面這篇文章主要給大家介紹了關(guān)于springboot獲取真實(shí)ip地址的相關(guān)資料,需要的朋友可以參考下2022-06-06

