欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

背景

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

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

目標

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

1. 準備工作

安裝FinalShell(遠程服務器連接工具)

安裝 Docker

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

docker --version

如果沒有安裝 Docker,可以參考官方文檔進行安裝

配置日志存儲路徑

在部署 Spring Boot 項目時,我們需要指定日志文件的存儲路徑。為了讓容器中的日志能夠被宿主機訪問并持久化,我們將 日志文件掛載到宿主機。

假設(shè)我們在宿主機上創(chuàng)建一個日志文件存儲目錄 /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 路徑,并且在啟動時將該目錄掛載到宿主機:

<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>
    <!-- 配置滾動策略 -->
</appender>

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

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

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

打包 Spring Boot 項目

IntelliJ IDEA 中,你可以通過以下步驟來構(gòu)建項目:

打開項目,在Maven菜單欄中雙擊package進行打包。

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

生成的 JAR 文件

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

3. 創(chuàng)建 Dockerfile

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

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

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

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

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

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

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

docker build -t springboot-app .

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

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

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

6. 運行 Docker 容器

使用以下命令啟動容器,并將日志文件掛載到宿主機的 /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 端口映射到宿主機的 10010 端口。
  • --name learn-server-app:給容器指定一個名稱。
  • -v /usr/app2/learn-server-app-logs:/app/log/logs:將宿主機上的 /usr/app2/learn-server-app-logs 目錄掛載到容器中的 /app/log/logs 目錄。

使用docker logs learn-server-app查看啟動日志

啟動成功

7. 驗證部署訪問 Spring Boot 應用

在瀏覽器中訪問 http://<服務器IP>:10010,你應該能夠看到 Spring Boot 應用正常啟動。

查看日志

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

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

結(jié)論

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

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

相關(guān)文章

  • 詳解如何在低版本的Spring中快速實現(xiàn)類似自動配置的功能

    詳解如何在低版本的Spring中快速實現(xiàn)類似自動配置的功能

    這篇文章主要介紹了詳解如何在低版本的Spring中快速實現(xiàn)類似自動配置的功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 淺談java中定義泛型類和定義泛型方法的寫法

    淺談java中定義泛型類和定義泛型方法的寫法

    下面小編就為大家?guī)硪黄獪\談java中定義泛型類和定義泛型方法的寫法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • java使用GeoTools讀取shp文件并畫圖的操作代碼

    java使用GeoTools讀取shp文件并畫圖的操作代碼

    GeoTools是ArcGis地圖與java對象的橋梁,今天通過本文給大家分享java使用GeoTools讀取shp文件并畫圖,文章通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-07-07
  • Java如何在List或Map遍歷過程中刪除元素

    Java如何在List或Map遍歷過程中刪除元素

    相信大家在日常的開發(fā)過程中,經(jīng)常需要對List或Map里面的符合某種業(yè)務的數(shù)據(jù)進行刪除,但是如果不了解里面的機制就容易掉入“陷阱”導致遺漏或者程序異常。下面這篇文章將會給大家詳細介紹Java如何在List和Map遍歷過程中刪除元素,有需要的朋友們可以參考借鑒。
    2016-12-12
  • 三分鐘教你如何在IDEA中快速創(chuàng)建工程的方法

    三分鐘教你如何在IDEA中快速創(chuàng)建工程的方法

    這篇文章主要介紹了三分鐘教你如何在IDEA中快速創(chuàng)建工程的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 最新評論