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

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

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

建議學(xué)習(xí)本博客之前,需要對docke的基本命令有過學(xué)習(xí);

前言

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

1、項(xiàng)目打包

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

先把項(xiàng)目打成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 運(yùn)行一下jar包,先在本地確??梢哉_\(yùn)行先。

2、編寫Dockerfile文件

2.1、單個jar部署

Dockerfile文件常用命令

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

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

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

# 指定工作目錄
VOLUME /tmp

# 復(fù)制應(yīng)用程序的 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 對應(yīng)著jar包的名字:版本(可以自己定) Dockerfile文件的路徑,點(diǎn)是代表當(dāng)前文件夾

docker build -t service-gateway:1.0.0 . 

查看docker里面的鏡像 :

docker images

創(chuàng)建容器

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

查看容器是否啟動成功

啟動成功之后,可以訪問對應(yīng)的端口進(jìn)行查看驗(yàn)證

2.2、多個jar一起部署到docker

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

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

2.2.1、編寫start.sh啟動文件

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

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

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

# 保持容器運(yùn)行
tail -f /dev/null

2.2.2、編寫Dockerfile文件

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

# 指定工作目錄
WORKDIR /tmp

# 復(fù)制應(yīng)用程序的 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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何在 Docker 中啟動 Jupyter Notebook

    如何在 Docker 中啟動 Jupyter Notebook

    這篇文章主要介紹了如何在 Docker 中啟動 Jupyter Notebook,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05
  • docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟

    docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟

    本女王主要介紹了docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 在vscode中使用ssh運(yùn)行docker:從下載到運(yùn)行全流程

    在vscode中使用ssh運(yùn)行docker:從下載到運(yùn)行全流程

    首先在本機(jī)或者服務(wù)器上下載docker并運(yùn)行,本文目的旨在本機(jī)下載docker并打包,然后在服務(wù)器上進(jìn)行加載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-08-08
  • Redis快速部署為Docker容器的實(shí)現(xiàn)方法

    Redis快速部署為Docker容器的實(shí)現(xiàn)方法

    本文主要介紹了Redis快速部署為Docker容器的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Docker部署MinIO鏡像的方法(保姆級教程)

    Docker部署MinIO鏡像的方法(保姆級教程)

    本文主要介紹了使用Docker部署MinIO鏡像,包括創(chuàng)建掛載目錄、運(yùn)行MinIO容器的參數(shù)解析、使用Compose運(yùn)行MinIO容器等,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Docker搭建Jenkins實(shí)現(xiàn)自動部署的圖文教程

    Docker搭建Jenkins實(shí)現(xiàn)自動部署的圖文教程

    本文主要介紹了Docker搭建Jenkins實(shí)現(xiàn)自動部署教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • ES和Kibana如何設(shè)置賬號密碼

    ES和Kibana如何設(shè)置賬號密碼

    設(shè)置Elasticsearch和Kibana賬號密碼需進(jìn)入容器修改配置文件,重啟服務(wù)后訪問時輸入憑證,Elasticsearch需設(shè)置elastic等六種賬戶密碼,Kibana通過配置文件啟用安全功能
    2025-07-07
  • docker tag和docker push的使用詳解

    docker tag和docker push的使用詳解

    這篇文章主要介紹了docker tag和docker push的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用Docker快速安裝grafana的基本步驟

    使用Docker快速安裝grafana的基本步驟

    Grafana 是一個強(qiáng)大的開源監(jiān)控和數(shù)據(jù)分析平臺,它能夠與各種數(shù)據(jù)源集成,并提供靈活的可視化和儀表盤功能,下面給大家分享Docker 中安裝 Grafana 的基本步驟,感興趣的朋友一起看看吧
    2024-01-01
  • linux安裝docker配置其他方式

    linux安裝docker配置其他方式

    文章介紹了如何安裝和配置多種常用軟件,如Docker、Redis、Nginx、Zookeeper、Kafka、ElasticSearch和MySQL,并提供了詳細(xì)的配置步驟和命令
    2026-01-01

最新評論

克拉玛依市| 汉源县| 永吉县| 沅江市| 阳朔县| 四会市| 太保市| 会理县| 株洲市| 东台市| 新安县| 桦甸市| 图木舒克市| 平安县| 忻城县| 扬中市| 彰化市| 鹤峰县| 丰台区| 罗定市| 太原市| 乐昌市| 容城县| 安化县| 军事| 长葛市| 清徐县| 石门县| 怀安县| 淮阳县| 香港 | 化德县| 边坝县| 诸暨市| 扶风县| 永修县| 长顺县| 阿鲁科尔沁旗| 平罗县| 右玉县| 黄石市|