最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker部署SpringBoot項(xiàng)目教程(完整版)

 更新時(shí)間:2025年06月20日 09:04:39   作者:hoho不愛(ài)喝酒  
這篇文章主要介紹了Docker部署SpringBoot項(xiàng)目教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

在微服務(wù)架構(gòu)的背景下,Spring Boot 已經(jīng)成為了許多項(xiàng)目的首選開發(fā)框架。隨著容器化技術(shù)的興起,Docker 為應(yīng)用的部署、管理提供了強(qiáng)大且靈活的方式。

本文將演示如何將一個(gè)本地開發(fā)的 Spring Boot 項(xiàng)目,通過(guò) Docker 容器部署到 Linux 服務(wù)器上,并將日志文件掛載到宿主機(jī)上,以便于后期的日志管理和排查問(wèn)題。

目標(biāo)

  • 使用 Docker 部署 Spring Boot 項(xiàng)目。
  • 日志文件掛載到宿主機(jī),以便后期查看和管理。
  • 通過(guò) 本地 IntelliJ IDEA 構(gòu)建項(xiàng)目,然后上傳到服務(wù)器。

1. 準(zhǔn)備工作

安裝FinalShell(遠(yuǎn)程服務(wù)器連接工具)

安裝 Docker

確保你的服務(wù)器上已經(jīng)安裝 Docker。你可以通過(guò)以下命令來(lái)檢查 Docker 是否安裝:

docker --version

如果沒(méi)有安裝 Docker,可以參考官方文檔進(jìn)行安裝

配置日志存儲(chǔ)路徑

在部署 Spring Boot 項(xiàng)目時(shí),我們需要指定日志文件的存儲(chǔ)路徑。為了讓容器中的日志能夠被宿主機(jī)訪問(wèn)并持久化,我們將 日志文件掛載到宿主機(jī)。

假設(shè)我們?cè)谒拗鳈C(jī)上創(chuàng)建一個(gè)日志文件存儲(chǔ)目錄 /usr/app2/learn-server-app-logs

mkdir -p /usr/app2/learn-server-app-logs
chmod -R 755 /usr/app2/learn-server-app-logs

配置 Spring Boot 日志

在你的 logback-spring.xml 配置文件中,確保日志文件輸出路徑指向容器內(nèi)的 /app/logs 路徑,并且在啟動(dòng)時(shí)將該目錄掛載到宿主機(jī):

<property name="LOG_HOME" value="log/logs" />
<appender name="FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${LOG_HOME}/springboot-app.log</File>
    <!-- 配置滾動(dòng)策略 -->
</appender>

確保日志文件的路徑使用相對(duì)路徑(如 log/logs),Docker 會(huì)將此目錄掛載到宿主機(jī)指定的目錄。

2. 使用 IntelliJ IDEA 構(gòu)建 Spring Boot 項(xiàng)目

首先,我們需要將 Spring Boot 項(xiàng)目打包為一個(gè)可執(zhí)行的 JAR 文件。

打包 Spring Boot 項(xiàng)目

IntelliJ IDEA 中,你可以通過(guò)以下步驟來(lái)構(gòu)建項(xiàng)目:

打開項(xiàng)目,在Maven菜單欄中雙擊package進(jìn)行打包。

出現(xiàn)BUILD SUCCESS打包成功

生成的 JAR 文件

構(gòu)建完成后,你的 JAR 文件將在 target/ 目錄中,假設(shè)文件名為 learn-server.jar。

3. 創(chuàng)建 Dockerfile

為了將 Spring Boot 項(xiàng)目打包到 Docker 容器中,我們需要編寫一個(gè) Dockerfile。Dockerfile 是一個(gè)簡(jiǎn)單的腳本,它包含了構(gòu)建 Docker 鏡像所需的所有命令。

創(chuàng)建一個(gè)名為 Dockerfile 的文件:

# 選擇基礎(chǔ)鏡像
FROM openjdk:11-jre-slim
# 設(shè)置工作目錄
WORKDIR /app
# 復(fù)制構(gòu)建后的 JAR 文件到容器中
COPY learn-server.jar app.jar
# 暴露應(yīng)用程序端口
EXPOSE 10010
# 設(shè)置容器啟動(dòng)時(shí)執(zhí)行的命令,啟動(dòng) Spring Boot 應(yīng)用并傳遞參數(shù)
ENTRYPOINT ["java", "-jar", "app.jar", "--server.port=10010", "--spring.profiles.active=prod"]

4.(關(guān)鍵的一步)將文件上傳到服務(wù)器

learn-server.jarDockerfile文件上傳到服務(wù)器上,使用FinalShell時(shí)直接從本地磁盤將這兩個(gè)文件拖拽到/usr/app2目錄,F(xiàn)inalShell`會(huì)自動(dòng)上傳。

5. 構(gòu)建 Docker 鏡像

使用下面的命令在項(xiàng)目目錄下構(gòu)建 Docker 鏡像:

docker build -t springboot-app .

注意:要在你上傳jar包的同級(jí)目錄下執(zhí)行

該命令將會(huì)根據(jù) Dockerfile 構(gòu)建出一個(gè)名為 springboot-app 的 Docker 鏡像。

構(gòu)建成功如圖所示:

6. 運(yùn)行 Docker 容器

使用以下命令啟動(dòng)容器,并將日志文件掛載到宿主機(jī)的 /usr/app2/learn-server-app-logs 目錄:

docker run -d -p 10010:10010 --name learn-server-app -v /usr/app2/learn-server-app-logs:/app/log/logs springboot-app
  • -p 10010:10010:將容器的 10010 端口映射到宿主機(jī)的 10010 端口。
  • --name learn-server-app:給容器指定一個(gè)名稱。
  • -v /usr/app2/learn-server-app-logs:/app/log/logs:將宿主機(jī)上的 /usr/app2/learn-server-app-logs 目錄掛載到容器中的 /app/log/logs 目錄。

使用docker logs learn-server-app查看啟動(dòng)日志

啟動(dòng)成功

7. 驗(yàn)證部署訪問(wèn) Spring Boot 應(yīng)用

在瀏覽器中訪問(wèn) http://<服務(wù)器IP>:10010,你應(yīng)該能夠看到 Spring Boot 應(yīng)用正常啟動(dòng)。

查看日志

所有生成的日志文件將被保存在宿主機(jī)上的 /usr/app2/learn-server-app-logs 目錄中,方便后期查看和管理。

tail -200f /usr/app2/learn-server-app-logs/pro-server-info.log

結(jié)論

通過(guò) Docker 部署 Spring Boot 項(xiàng)目并將日志掛載到宿主機(jī)是一個(gè)非常實(shí)用的方案,尤其是在生產(chǎn)環(huán)境中。它不僅簡(jiǎn)化了部署過(guò)程,還可以更好地管理應(yīng)用的日志。通過(guò)將日志文件存儲(chǔ)在宿主機(jī)上,我們可以方便地查看和管理日志,避免了容器重啟后丟失日志的風(fēng)險(xiǎn)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • formfile文件上傳使用示例

    formfile文件上傳使用示例

    這篇文章主要介紹了formfile文件上傳使用示例,代碼已加注釋,需要的朋友可以參考下
    2014-03-03
  • 關(guān)于springboot配置文件密文解密方式

    關(guān)于springboot配置文件密文解密方式

    這篇文章主要介紹了關(guān)于springboot配置文件密文解密方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java 代碼實(shí)例解析設(shè)計(jì)模式之監(jiān)聽者模式

    Java 代碼實(shí)例解析設(shè)計(jì)模式之監(jiān)聽者模式

    所謂監(jiān)聽者模式,我理解的是構(gòu)建一個(gè)容器存放所有被監(jiān)聽的線程或?qū)ο?,監(jiān)聽每個(gè)線程或?qū)ο蟀l(fā)生的變化,若某個(gè)線程或?qū)ο笥|發(fā)指定規(guī)則,那么則對(duì)所有被監(jiān)聽的線程或?qū)ο蟾鶕?jù)業(yè)務(wù)需要做處理
    2021-10-10
  • Java基于ServletContextListener實(shí)現(xiàn)UDP監(jiān)聽

    Java基于ServletContextListener實(shí)現(xiàn)UDP監(jiān)聽

    這篇文章主要介紹了Java基于ServletContextListener實(shí)現(xiàn)UDP監(jiān)聽,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • JavaScript中new運(yùn)算符的實(shí)現(xiàn)過(guò)程解析

    JavaScript中new運(yùn)算符的實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了JavaScript中new運(yùn)算符的實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 一文詳解Java中Map和Set接口的使用方法

    一文詳解Java中Map和Set接口的使用方法

    Map和set是一種專門用來(lái)進(jìn)行搜索的容器或者數(shù)據(jù)結(jié)構(gòu),其搜索的效率與其具體的實(shí)例化子類有關(guān),可能在查找時(shí)進(jìn)行一些插入和刪除的操作,即動(dòng)態(tài)查找,那上述兩種方式就不太適合了,本節(jié)介紹的Map和Set是一種適合動(dòng)態(tài)查找的集合容器,需要的朋友可以參考下
    2024-08-08
  • commons io文件操作示例分享

    commons io文件操作示例分享

    這篇文章主要介紹了commons io文件操作示例分享,需要的朋友可以參考下
    2014-02-02
  • Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)詳細(xì)示例代碼

    Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)詳細(xì)示例代碼

    POST請(qǐng)求是一種常見的網(wǎng)絡(luò)通信操作,用于向服務(wù)器發(fā)送數(shù)據(jù),這種請(qǐng)求通常用于上傳文件或者提交包含大量數(shù)據(jù)的表單,這篇文章主要介紹了Java?Post請(qǐng)求發(fā)送form-data表單參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • mybatis-plus?查詢傳入?yún)?shù)Map,返回List<Map>方式

    mybatis-plus?查詢傳入?yún)?shù)Map,返回List<Map>方式

    這篇文章主要介紹了mybatis-plus?查詢傳入?yún)?shù)Map,返回List<Map>方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java實(shí)現(xiàn)word文檔轉(zhuǎn)pdf并添加水印的方法詳解

    java實(shí)現(xiàn)word文檔轉(zhuǎn)pdf并添加水印的方法詳解

    這篇文章主要介紹了java實(shí)現(xiàn)word文檔轉(zhuǎn)pdf并添加水印的方法,結(jié)合實(shí)例形式詳細(xì)分析了java word文檔轉(zhuǎn)PDF相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09

最新評(píng)論

奉节县| 蓬溪县| 马关县| 安乡县| 安达市| 武功县| 韶山市| 镇原县| 山阴县| 苍南县| 增城市| 四会市| 惠水县| 曲水县| 大荔县| 吉首市| 岳阳市| 商水县| 驻马店市| 临沂市| 武乡县| 新竹县| 泸定县| 会同县| 荥阳市| 廊坊市| 贺州市| 通河县| 旬邑县| 东丰县| 揭东县| 镇坪县| 长葛市| 尚义县| 体育| 武汉市| 屯昌县| 中山市| 云浮市| 娄底市| 鄂伦春自治旗|