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

docker實現(xiàn)部署jar包項目教程(包括單個和多個一起部署)

 更新時間:2025年07月19日 08:26:06   作者:方漸鴻  
文章介紹了Docker部署Spring Boot項目的方法,涵蓋單個jar包的打包、Dockerfile編寫及運行,多個jar包通過啟動腳本同時部署的技巧,并建議在部署復雜或數(shù)量多時使用Docker Compose或K8s統(tǒng)一管理

建議學習本博客之前,需要對docke的基本命令有過學習;

前言

該方式適用于jar包較少時,項目復雜度不高時使用,如果部署的比較多的話還是建議使用docker的編碼工具Docker Compose或者k8s進行統(tǒng)一部署

1、項目打包

如果項目配置文件中有配置文件的ip地址是localhost需要改為時間的IP地址

先把項目打成jar包,注意配置spring boot的maven打包

<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- 在此處添加任何其他 Maven 編譯插件的配置,如果需要的話 -->
            </plugin>
        </plugins>
    </build>

避免在jar執(zhí)行時出現(xiàn)如:servier-gateway-1.0.jar中沒有主清單屬性、找不到或無法加載主類等錯誤,打包完成后可以先在本地執(zhí)行 java -jar xxx.jar 運行一下jar包,先在本地確??梢哉_\行先。

2、編寫Dockerfile文件

2.1、單個jar部署

Dockerfile文件常用命令

命令描述
FROM指定基礎鏡像,用于構(gòu)建新的鏡像。
COPY將文件從宿主機復制到容器中。
ADD類似于COPY,但支持遠程文件和自動解壓縮。
RUN在鏡像中運行命令,用于安裝軟件包和執(zhí)行其他構(gòu)建任務。
CMD定義容器啟動時要執(zhí)行的命令,只能有一個CMD命令,如果有多個,只有最后一個會生效。
ENTRYPOINT定義容器啟動時要執(zhí)行的命令,與CMD不同的是,ENTRYPOINT的參數(shù)不會被覆蓋。
ENV設置環(huán)境變量,用于配置容器的運行環(huán)境。
WORKDIR設置容器內(nèi)的工作目錄,后續(xù)命令將在該目錄下執(zhí)行。
EXPOSE聲明容器在運行時監(jiān)聽的端口,但并不映射端口到主機。
VOLUME創(chuàng)建一個掛載點,用于持久化數(shù)據(jù)。

2.2.1、編寫一個Dockerfile 文件格式制作鏡像

# 使用一個基礎的 Java 鏡像(根據(jù)自己項目中使用的是什么jdk版本設置,用于拉取執(zhí)行jar包的jdk環(huán)境)
FROM openjdk:8-jdk-alpine

# 指定工作目錄
VOLUME /tmp

# 復制應用程序的 JAR 文件到鏡像中(需要是相對路徑)
ADD ./servier-gateway/target/servier-gateway.jar servier-gateway.jar

# 定義容器啟動時執(zhí)行的命令
ENTRYPOINT ["java","-jar","servier-gateway.jar","&"]

2.1.2、執(zhí)行docker命令

拉取生成鏡像

docker build -t 對應著jar包的名字:版本(可以自己定) Dockerfile文件的路徑,點是代表當前文件夾

docker build -t service-gateway:1.0.0 . 

查看docker里面的鏡像 :

docker images

創(chuàng)建容器

docker run -d --name servier-gateway -p 8200:8200 a0e2430dd36f -t

查看容器是否啟動成功

啟動成功之后,可以訪問對應的端口進行查看驗證

2.2、多個jar一起部署到docker

如果是有多個服務需要部署,則可以統(tǒng)一寫在一個Dockerfile文件里,可以減少麻煩

格式如下:通過創(chuàng)建一個啟動腳步(start.sh),在其中啟動多個jar包;然后在 Dockerfile 中使用 CMD 指令來運行這個啟動腳本。

2.2.1、編寫start.sh啟動文件

這種啟動腳本的好處是它允許你在同一個容器中同時啟動多個應用程序,這對于某些復雜的應用程序架構(gòu)可能很有用。每個應用程序在后臺運行,容器保持活躍,直到你手動停止容器。

  • java -jar service-sys.jar & :命令表示以 Java 命令運行 service-sys.jar 文件,& 符號表示在后臺運行,以便同時啟動多個應用程序。
  • tail -f /dev/null :用于防止容器在應用程序啟動后立即退出,tail -f /dev/null 命令會持續(xù)監(jiān)視 /dev/null 文件(一個空文件);這是因為容器在主進程退出時會停止,但在這種情況下,tail 命令會一直運行,使容器保持活躍。
#!/bin/sh

# 啟動多個JAR包,每個JAR包后臺運行
java -jar service-activity.jar &
java -jar service-product.jar &
java -jar service-sys.jar &
java -jar service-user.jar &

# 保持容器運行
tail -f /dev/null

2.2.2、編寫Dockerfile文件

# 使用一個基礎的 Java 鏡像
FROM openjdk:8-jdk-alpine

# 指定工作目錄
WORKDIR /tmp

# 復制應用程序的 JAR 文件到鏡像中的根路徑下
COPY ./service-activity/target/service-activity.jar service-activity.jar
COPY ./service-product/target/service-product.jar service-product.jar
COPY ./service-sys/target/service-sys.jar service-sys.jar
COPY ./service-user/target/service-user.jar service-user.jar


# 定義容器啟動時執(zhí)行的命令
COPY start.sh start.sh

# 賦予啟動腳本可執(zhí)行權(quán)限
RUN chmod +x start.sh

# 定義容器啟動時執(zhí)行的命令
CMD ["./start.sh"]

2.2.3、執(zhí)行docker命令

拉取下載鏡像(同上)

docker build -t my-image .

查看鏡像

docker images

創(chuàng)建容器

通過這個鏡像為每個jar包創(chuàng)建容器,可以通過這個鏡像分別為不同jar包創(chuàng)建容器

docker run -d -p 8205:8205 --name service-activity my-image java -jar service-activity.jar

docker run -d -p 8203:8203 --name service-product my-image java -jar service-product.jar

docker run -d -p 8202:8202 --name service-sys my-image java -jar service-sys.jar

docker run -d -p 8206:8206 --name service-user my-image java -jar service-user.jar

查看容器是否啟動成功

docker ps 

總結(jié)

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

相關(guān)文章

  • IDEA整合Docker的實現(xiàn)步驟

    IDEA整合Docker的實現(xiàn)步驟

    本文主要介紹了IDEA整合Docker的實現(xiàn)步驟,主要設置了遠程連接,插件以及配置信息等,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • docker鏡像下載的另一種方式(實測有效!)

    docker鏡像下載的另一種方式(實測有效!)

    在Docker中下載鏡像是一個關(guān)鍵步驟,因為鏡像是容器運行的基礎這篇,文章主要給大家介紹了關(guān)于docker鏡像下載的另一種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • Linux上使用docker啟動redis并遠程訪問的實現(xiàn)

    Linux上使用docker啟動redis并遠程訪問的實現(xiàn)

    這篇文章主要介紹了Linux上使用docker啟動redis并遠程訪問的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • docker 的volumes清理步驟

    docker 的volumes清理步驟

    文章介紹了如何在Docker中清理volumes以釋放磁盤空間,包括查看所有卷、查找未使用的卷、清理未使用的卷、手動刪除特定卷、檢查卷的使用情況、清理卷中的數(shù)據(jù)、預防措施以及遷移Docker數(shù)據(jù)目錄等步驟,感興趣的朋友一起看看吧
    2025-03-03
  • docker容器如何指定utf-8編碼

    docker容器如何指定utf-8編碼

    這篇文章主要介紹了docker容器如何指定utf-8編碼問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Docker如何限制容器可用的內(nèi)存

    Docker如何限制容器可用的內(nèi)存

    容器的使用過程中,經(jīng)常需要對容器可以使用的主機資源進行限制,本文介紹如何限制容器可以使用的主機內(nèi)存,需要的朋友參考下吧
    2017-12-12
  • docker安裝,yum安裝失敗解決方案,阿里云鏡像安裝過程

    docker安裝,yum安裝失敗解決方案,阿里云鏡像安裝過程

    在配置Yum源遇到問題時,嘗試使用阿里云鏡像可以有效解決,本文詳細介紹了如何配置阿里云源及安裝Docker的步驟,首先,若Yum源配置出錯,建議更換為阿里云鏡像;其次,詳述了安裝Docker的具體命令,包括啟用阿里云源和安裝過程中的選擇提示
    2024-11-11
  • ubuntu 22.04安裝docker的詳細過程

    ubuntu 22.04安裝docker的詳細過程

    這篇文章主要介紹了ubuntu 22.04安裝docker的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-04-04
  • 如何在docker中運行springboot項目過程圖解

    如何在docker中運行springboot項目過程圖解

    這篇文章主要介紹了如何在docker中運行springboot項目過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟

    Docker部署MySQL8集群(一主二從)的實現(xiàn)步驟

    本文主要介紹了Docker部署MySQL8集群,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論