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

基于SpringBoot項目實現(xiàn)Docker容器化部署的主要步驟

 更新時間:2024年10月28日 10:47:16   作者:不惑_  
部署SpringBoot項目到Docker容器涉及選擇Java運行時環(huán)境的基礎鏡像、構建包含應用程序的Docker鏡像、編寫Dockerfile、使用docker build命令構建鏡像和使用docker run命令運行Docker容器等步驟

將Spring Boot項目部署到Docker容器中的涉及幾個主要步驟:

準備Docker鏡像

  • 首先,需要選擇一個基礎鏡像,通常是包含Java運行時環(huán)境的鏡像,例如OpenJDK??梢詮腄ocker Hub或其他鏡像倉庫中獲取這些鏡像。
  • 接下來,需要在基礎鏡像上構建一個包含Spring Boot應用程序的鏡像。這包括將應用程序的JAR文件、依賴項和配置文件添加到鏡像中。

編寫Dockerfile

  • Dockerfile是一個文本文件,其中包含了構建Docker鏡像的指令。需要編寫一個Dockerfile來指定如何構建包含Spring Boot應用程序的鏡像。
  • 在Dockerfile中,可以使用COPY指令將本地文件(包括Spring Boot應用程序的JAR文件和配置文件)復制到鏡像中。
  • 使用RUN指令可以在容器內(nèi)運行命令,例如安裝依賴項或執(zhí)行應用程序的構建。
  • 使用CMD或ENTRYPOINT指令指定在容器啟動時要運行的命令,通常是啟動Spring Boot應用程序的命令。

構建Docker鏡像

  • 使用docker build命令根據(jù)Dockerfile構建Docker鏡像。例如:docker build -t my-spring-boot-app .,其中-t選項用于指定鏡像的名稱和標簽。

運行Docker容器

  • 使用docker run命令運行你的Docker鏡像。例如:docker run -p 8080:8080 my-spring-boot-app,其中-p選項用于將主機的端口映射到容器的端口,以便外部可以訪問應用程序。
  • 還可以使用其他選項來配置容器,例如掛載卷、設置環(huán)境變量等。

訪問應用程序

  • 一旦容器運行,可以通過訪問主機的端口(在上述示例中是8080)來訪問運行在Docker容器中的Spring Boot應用程序。

Docker容器化部署Spring Boot項目的原理涉及將應用程序及其依賴項打包到一個Docker鏡像中,然后在容器內(nèi)運行該鏡像。這使得應用程序在不同環(huán)境中更加可移植和隔離,同時也方便了部署和擴展。使用Docker可以大大簡化應用程序的部署流程,并提供了更好的資源管理和隔離,以及更高的可伸縮性。

閑言少敘,上科技?。?!

方式一:直接構建jar包運行的鏡像

  • 將打包好程序,上傳到服務器的指定目錄
  • 例如:/home/www/spring-boot-image/spring-boot-docker-1.0.jar
  • 在該目錄下創(chuàng)建Dockerfile文件
FROM openjdk:8u312
MAINTAINER zhangt
ADD spring-boot-docker-1.0.jar zhangt.jar
EXPOSE 8520
ENTRYPOINT ["java","-jar","zhangt.jar"]

Dockerfile的內(nèi)容解釋:
FROM openjdk:8u312
這一行指定了基礎鏡像,從openjdk:8u312鏡像構建。它使用了OpenJDK 8的版本號為312的鏡像作為基礎。這是一個包含Java運行時環(huán)境的基礎鏡像。
MAINTAINER zhangt
這一行設置了維護者信息,盡管在較新版本的Docker中,MAINTAINER已不再建議使用,而可以使用LABEL來添加類似的元數(shù)據(jù)信息。
ADD spring-boot-docker-1.0.jar zhangt.jar
這一行使用ADD指令將本地的spring-boot-docker-1.0.jar文件復制到鏡像中,并重命名為zhangt.jar。這個JAR文件包含了Spring Boot應用程序的可執(zhí)行代碼。
EXPOSE 8520
這一行使用EXPOSE指令聲明容器將監(jiān)聽的端口號,這里指定為8520。請注意,這只是一個元數(shù)據(jù)聲明,它不會自動將端口映射到主機上。
ENTRYPOINT ["java","-jar","zhangt.jar"]
這一行設置了容器啟動時要執(zhí)行的命令。在這種情況下,容器將以java -jar zhangt.jar命令啟動,這會運行Spring Boot應用程序。java命令會啟動Java虛擬機(JVM),并執(zhí)行zhangt.jar中的可執(zhí)行代碼。
這Dockerfile的作用是基于OpenJDK 8u312鏡像構建一個包含Spring Boot應用程序的Docker鏡像。一旦構建完成,可以使用這個鏡像來運行Spring Boot應用程序的容器,容器將監(jiān)聽8520端口,可以通過適當?shù)亩丝谟成鋪碜屚獠吭L問應用程序。

創(chuàng)建好Dockerfile文件之后,執(zhí)行命構建鏡像

docker build -t zhangt .

注意最后的 . 表示Dockerfile在當前文件目錄下。zhangt表示構建的鏡像,構建成功后可以使用**docker images**命令查看鏡像。
-t 選項用于指定鏡像的名稱和標簽,你可以將 zhangt 替換為你想要的名稱和標簽。

鏡像構建成功之后,就可以運行容器

docker run -d --restart=always --name zhangt -p 8520:8520 zhangt

各個參數(shù)的含義:
docker run: 用于啟動 Docker 容器的命令。
-d: 這是一個選項,表示在后臺(守護進程模式)運行容器。容器將在后臺運行,不會占據(jù)終端。
--restart=always: 這是另一個選項,表示容器在退出時總是重新啟動。即使容器因為錯誤或其他原因而停止,Docker 也會嘗試自動重新啟動容器。
--name zhangt: 這是用于給容器指定一個名稱的選項。容器的名稱被設置為 “zhangt”。
-p 8520:8520: 這是用于將主機端口與容器端口進行映射的選項。這個選項將主機的 8520 端口映射到容器的 8520 端口。這樣,外部可以通過訪問主機的 8520 端口來訪問容器內(nèi)運行的應用程序。
zhangt: 這是容器的名稱或鏡像名稱,表示要運行的容器是基于名為 “zhangt” 的 Docker 鏡像創(chuàng)建的。如果 “zhangt” 是一個鏡像名稱,Docker 將查找該鏡像并在容器中運行它。
這個命令的目的是在后臺運行一個 Docker 容器,該容器使用 “zhangt” 鏡像創(chuàng)建,并將主機的 8520 端口映射到容器的 8520 端口。容器的名稱設置為 “zhangt-p”,并且如果容器在任何情況下退出,Docker 會自動重新啟動它。這通常用于部署應用程序,以確保應用程序在意外情況下能夠自動恢復。
啟動容器后可以使用 **docker ps**命令查看啟動的容器
docker logs -f --tail 1000 容器id ,可以查看服務的日志。
如果想更新jar包,只需要使用 docker cp spring-boot-docker-1.0.jar 容器ID:/zhangt.jar,就可以將spring-boot-docker-1.0.jar拷貝進容器并重命名,然后 docker restart 容器ID 重啟容器。

方式二:基于jdk鏡像運行容器 在服務器中來取jdk鏡像

docker pull openjdk:8u181

創(chuàng)建目錄,并將jar包上傳到該目錄

cd /home/  mkdir www/spring-boot-docker

在Jar放置的同級目錄,編寫shell腳本命名為:start.sh

#!/bin/bash
echo -e "\n################ build service start #########################"
# delete docker container
echo -e "\n1, delete docker container [developer-platform-basic-dev] start ......"
sudo docker rm -f spring-boot-docker-1.0
# docker run # docker run developer-platform-basic-1.0.0
echo -e "\n2, docker run build container [spring-boot-docker-1.0] start ......"
sudo docker run --name spring-boot-docker-1.0 -d -p 8741:8741 \
-v /home/www/spring-boot-docker:/jar openjdk:8u181 \
java -jar /jar/spring-boot-docker-1.0.jar --spring.profiles.active=dev
echo -e "\n3, docker ps container [spring-boot-docker-1.0] start ...."
sudo docker ps -a  | grep spring-boot-docker-1.0
echo -e "\n4, docker logs container [spring-boot-docker-1.0] start ...."
sudo docker logs -f -t spring-boot-docker-1.0 > ./logs/log_$(date +%Y%m%d).out 2>&1 &
echo -e "\n################ build service end #########################"

核心腳本解釋:
1.sudo docker run 這是用于在Docker中運行容器的命令。通常需要使用sudo權限來執(zhí)行Docker命令,以確保具有足夠的權限來管理容器。
2. --name spring-boot-docker-1.0: 這是為Docker容器指定的名稱,容器的名稱被設置為"spring-boot-docker-1.0"。
3. -d: 這是一個選項,表示在后臺運行容器(即以守護進程模式運行),而不是在前臺交互模式下運行。
4. -p 8741:8741: 這個選項用于將主機的端口與容器的端口進行映射。具體來說,將主機的8741端口映射到容器的8741端口,這樣外部可以通過主機的8741端口訪問容器中的應用程序。
5. -v /home/www/spring-boot-docker:/jar: 這個選項用于將主機的文件系統(tǒng)目錄與容器內(nèi)的目錄進行掛載。在這種情況下,將主機上的/home/www/spring-boot-docker目錄掛載到容器內(nèi)的/jar目錄。這通常用于將應用程序的代碼和資源文件從主機復制到容器中,以便在容器內(nèi)運行應用程序。
6. openjdk:8u181: 這是要在容器中使用的Docker鏡像的名稱和標簽。在這里,使用的是一個基于OpenJDK 8u181的Java鏡像,該鏡像包含了Java運行時環(huán)境。
7. java -jar /jar/spring-boot-docker-1.0.jar --spring.profiles.active=dev: 這是在容器內(nèi)運行的命令。它啟動了Java虛擬機(JVM),并在JVM內(nèi)運行了一個Spring Boot應用程序。具體來說,它運行了/jar/spring-boot-docker-1.0.jar這個JAR文件,并通過–spring.profiles.active=dev指定了一個Spring配置文件的激活配置。

這個腳本的作用是創(chuàng)建一個名為"spring-boot-docker-1.0"的Docker容器,該容器運行一個基于Spring Boot的Java應用程序,該應用程序監(jiān)聽8741端口,并將主機上的/home/www/spring-boot-docker目錄掛載到容器內(nèi)的/jar目錄,以供應用程序使用。這樣,可以通過主機的8741端口訪問運行在容器中的Spring Boot應用程序。

運行腳本 sh start.sh以后發(fā)布,只需要把宿主機目錄里的jar包替換掉,重啟容器。

到此這篇關于基于SpringBoot項目實現(xiàn)Docker容器化部署的文章就介紹到這了,更多相關SpringBoot Docker容器化部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springmvc中進行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析

    springmvc中進行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析

    這篇文章主要介紹了springmvc中進行數(shù)據(jù)保存以及日期參數(shù)的保存過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Java多線程實現(xiàn)TCP網(wǎng)絡Socket編程(C/S通信)

    Java多線程實現(xiàn)TCP網(wǎng)絡Socket編程(C/S通信)

    這篇文章主要介紹了Java多線程實現(xiàn)TCP網(wǎng)絡Socket編程(C/S通信),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • SpringMVC適配器模式作用范圍介紹

    SpringMVC適配器模式作用范圍介紹

    適配器這個詞我們應該很熟悉,天天都在使用,手機充電時,電源線頭頭就叫電源適配器,干什么用的呢?把220V電壓轉換成手機充電時使用的電壓,那么適配器是不是很好理解了,下面看一下
    2023-04-04
  • java 高并發(fā)中volatile的實現(xiàn)原理

    java 高并發(fā)中volatile的實現(xiàn)原理

    這篇文章主要介紹了java 高并發(fā)中volatile的實現(xiàn)原理的相關資料,在多線程并發(fā)編程中synchronized和Volatile都扮演著重要的角色,Volatile是輕量級的synchronized,它在多處理器開發(fā)中保證了共享變量的“可見性”,需要的朋友可以參考下
    2017-03-03
  • SpringBoot和Vue.js實現(xiàn)的前后端分離的用戶權限管理系統(tǒng)

    SpringBoot和Vue.js實現(xiàn)的前后端分離的用戶權限管理系統(tǒng)

    本文主要介紹了SpringBoot和Vue.js實現(xiàn)的前后端分離的用戶權限管理系統(tǒng),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Java實現(xiàn)常見的排序算法的示例代碼

    Java實現(xiàn)常見的排序算法的示例代碼

    這篇文章主要為大家詳細介紹了Java實現(xiàn)常見的排序算法(選擇排序、插入排序、希爾排序等)的相關資料,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-10-10
  • Spring Cloud Alibaba Nacos Config加載配置詳解流程

    Spring Cloud Alibaba Nacos Config加載配置詳解流

    這篇文章主要介紹了Spring Cloud Alibaba Nacos Config配置中心實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-07-07
  • SpringBoot項目集成MinIO全過程

    SpringBoot項目集成MinIO全過程

    這篇文章主要介紹了SpringBoot項目集成MinIO全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java中枚舉類的用法示例詳解

    Java中枚舉類的用法示例詳解

    枚舉類型可以取代以往常量的定義方式,即將常量封裝在類或接口中。此外,枚舉類型還提供了安全檢查功能。本文就來和大家講講Java中枚舉類的用法,需要的可以參考一下
    2022-07-07
  • Gson中@JsonAdater注解的幾種方式總結

    Gson中@JsonAdater注解的幾種方式總結

    這篇文章主要介紹了Gson中@JsonAdater注解的幾種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論

东光县| 河津市| 新田县| 乳山市| 云霄县| 同仁县| 宝山区| 鄂州市| 务川| 巢湖市| 陆良县| 邯郸县| 张掖市| 印江| 天峨县| 榆中县| 佛学| 九台市| 格尔木市| 衡阳市| 澄迈县| 洪泽县| 普陀区| 灵台县| 金乡县| 天镇县| 家居| 刚察县| 禄丰县| 大姚县| 昭觉县| 建瓯市| 江口县| 陆川县| 射洪县| 岳阳县| 佛坪县| 晴隆县| 出国| 怀远县| 达拉特旗|