Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)步驟
今天準(zhǔn)備軟考的時(shí)候,學(xué)習(xí)到智能運(yùn)維的知識(shí),腦海里面突然想到項(xiàng)目發(fā)布管理,回憶起本科部署項(xiàng)目的方式就是用maven打個(gè)jar包然后使用命令部署到服務(wù)器:nohup java -jar jar包名稱 & ,后臺(tái)啟動(dòng)項(xiàng)目,并且將日志輸入到nohup.out文件中。這種部署方式快是挺快的,遇到的問題就是如果有多個(gè)項(xiàng)目的話,不方便管理,而且不適合遷移。于是像嘗試用docker部署一下,熟悉一下流程。
步驟一:使用mvn package 打包
步驟二:使用scp 命令將文件上傳至服務(wù)器的指定目錄: scp XX.jar root@ip:/home/javaprojects/
步驟三:在服務(wù)端安裝docker,命令 apt install docker.io ,然后將啟動(dòng)docker ,systemctl start docker
步驟四: 配置docker鏡像清華源,在/etc/docker 的daemon.json文件(沒有就創(chuàng)建一個(gè))中添加鏡像地址,內(nèi)容如下:
{
“registry-mirrors”: [“https://docker.mirrors.tuna.tsinghua.edu.cn”]
}
然后重啟docker服務(wù),systemctl restart docker,
步驟五:制作dockerfile文件
# Docker image for springboot file run # VERSION 0.0.1 # Author: xiaoyang # 基礎(chǔ)鏡像使用java FROM java:8 # 作者 MAINTAINER xiaoyang <xxxx@qq.com> # VOLUME 指定了臨時(shí)文件目錄為/tmp。 # 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中并更名為app.jar ADD demo-0.0.1-SNAPSHOT.jar app.jar # 運(yùn)行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
解釋下這個(gè)配置文件:
VOLUME 指定了臨時(shí)文件目錄為/tmp。其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp。該步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來持久化到 Docker 數(shù)據(jù)文件夾,因?yàn)?Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄
項(xiàng)目的 jar 文件作為 “app.jar” 添加到容器的
ENTRYPOINT 執(zhí)行項(xiàng)目 app.jar。為了縮短 Tomcat 啟動(dòng)時(shí)間,添加一個(gè)系統(tǒng)屬性指向 “/dev/./urandom” 作為 Entropy Source
如果是第一次打包,它會(huì)自動(dòng)下載java 8的鏡像作為基礎(chǔ)鏡像,以后再制作鏡像的時(shí)候就不會(huì)再下載了。
步驟6:
制作鏡像:
docker build -t springbootdocker .
步驟7:
啟動(dòng)容器
docker run -d -p 8080:8085 springbootdocker
-d參數(shù)是讓容器后臺(tái)運(yùn)行
-p 是做端口映射,此時(shí)將服務(wù)器中的8080端口映射到容器中的8085(項(xiàng)目中端口配置的是8085)端口,這樣就可以通過8080端口訪問接口服務(wù)了。
參考文章:https://www.jianshu.com/p/397929dbc27d
到此這篇關(guān)于Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker部署SpringBoot項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 如何利用Docker部署一個(gè)簡單的springboot項(xiàng)目
- Docker部署SpringBoot項(xiàng)目到云服務(wù)器的實(shí)現(xiàn)步驟
- Docker部署SpringBoot的兩種方法
- 基于SpringBoot的Docker部署詳解
- SpringBoot?docker項(xiàng)目部署實(shí)戰(zhàn)
- 基于SpringBoot的Docker部署實(shí)踐
- 使用docker部署springboot項(xiàng)目到服務(wù)器的詳細(xì)過程
- idea快速實(shí)現(xiàn)將SpringBoot項(xiàng)目打包Docker鏡像并部署
相關(guān)文章
docker運(yùn)行nginx鏡像的實(shí)現(xiàn)步驟
這篇文章主要介紹了docker運(yùn)行nginx鏡像的實(shí)現(xiàn),并將配置文件和目錄掛載到宿主機(jī)上,以實(shí)現(xiàn)方便統(tǒng)一的管理配置信息,感興趣的可以了解一下2023-10-10Docker-compose 建立ELK集群的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker-compose 建立ELK集群的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01完美解決Windows10下無法對(duì)docker容器進(jìn)行端口訪問的操作
這篇文章主要介紹了完美解決Windows10下無法對(duì)docker容器進(jìn)行端口訪問的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker容器開啟設(shè)置自動(dòng)啟動(dòng)的實(shí)現(xiàn)方法
通過在Docker中設(shè)置容器的默認(rèn)啟動(dòng)命令,我們可以實(shí)現(xiàn)在容器啟動(dòng)時(shí)自動(dòng)啟動(dòng)服務(wù)的功能,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10淺談docker-compose網(wǎng)絡(luò)設(shè)置之networks
這篇文章主要介紹了淺談docker-compose網(wǎng)絡(luò)設(shè)置之networks,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09docker 創(chuàng)建RedHat8.5鏡像的命令
這篇文章主要介紹了docker 創(chuàng)建RedHat8.5鏡像的命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03