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

使用Docker打包和運行Java鏡像的完整指南

 更新時間:2025年01月03日 10:42:39   作者:默 語  
在這篇文章中,我們將詳細講解如何使用Docker打包和運行一個Java應用鏡像,通過此教程,即使你是一個小白,也能輕松學會如何構(gòu)建Docker鏡像并運行Java應用,感興趣的小伙伴跟著小編一起來看看吧

摘要

本教程包括以下內(nèi)容:

  • 準備Java鏡像的基礎環(huán)境。
  • 編寫啟動腳本和Dockerfile。
  • 使用Docker構(gòu)建Java應用鏡像。
  • 啟動容器運行Java應用。
  • 可能遇到的問題及解決方案。

最后會引導大家加我的微信,方便隨時交流!

引言

Docker作為一種輕量級容器化技術,可以極大地方便應用的部署和管理。通過Docker,我們可以在任何支持Docker的系統(tǒng)上輕松運行Java應用,而不需要單獨安裝Java環(huán)境。

正文

1. 準備工作

  • 安裝Docker確保系統(tǒng)上已經(jīng)安裝了Docker。如果尚未安裝,請參考官方文檔進行安裝。

  • 加載基礎Java鏡像使用以下命令加載Java鏡像(這里假設你已經(jīng)有了一個本地的Java鏡像文件):

docker load -i <鏡像文件名>

例如:

docker load -i jdk-1.8.0_432.tar

加載成功后,可以通過以下命令查看鏡像:

docker images

  1. 準備項目所需文件
    需要準備的文件包括:

    • Java應用的JAR包(如demo-0.0.1-SNAPSHOT.jar)。
    • 應用配置文件(如application.properties)。
    • 啟動腳本(start_1.sh)。
    • Dockerfile。

2. 編寫啟動腳本

以下是一個完整的start_1.sh腳本,用于啟動Java應用。每一部分都有詳細注釋,幫助你理解其功能:

#!/bin/sh
# 設置環(huán)境變量以支持UTF-8編碼
export LANG=en_US.UTF-8
TZ='CST-8'
export TZ

# 定義JAR文件目錄、JAR文件名和日志目錄
JarDir="/ywc/zb/"  # JAR包的存放路徑
LogDir="/ywc/zb/"  # 日志文件的存放路徑
JarFile="demo-0.0.1-SNAPSHOT.jar"  # JAR文件名稱
OutFile="demo.log"  # 輸出的日志文件名稱

# 將腳本運行信息寫入日志
echo "Starting application..." > $LogDir$OutFile

# 檢查是否已有運行的Java進程
ThreadID=$(ps -ef | grep $JarFile | grep -v grep | awk '{print $2}')
if [ ! -z $ThreadID ]; then
    echo "$JarFile 已在進程 $ThreadID 中運行,嘗試終止..." >> $LogDir$OutFile
    kill -9 $ThreadID
    echo "已終止存在的進程 $ThreadID。" >> $LogDir$OutFile
fi

# 啟動Java應用
nohup java -Dfile.encoding=UTF-8 -jar $JarDir$JarFile \
  -Xmx1024m -Xms1024m \
  --spring.config.location=${JarDir}application.yml \
  --spring.config.location=${JarDir}application.properties >> $LogDir$OutFile &

echo "啟動 $JarFile..." >> $LogDir$OutFile
sleep 3s

# 實時顯示日志
tail -f $LogDir$OutFile

3. 編寫Dockerfile

下面是Dockerfile的內(nèi)容:

# 基于指定版本的Java鏡像
FROM jdk:1.8.0_432  # Java版本

# 添加Java應用的JAR包到容器中
ADD demo-0.0.1-SNAPSHOT.jar /ywc/zb/demo-0.0.1-SNAPSHOT.jar

# 設置時區(qū)
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone

# 添加配置文件
ADD application.properties /ywc/zb/application.properties

# 添加啟動腳本
ADD start_1.sh /ywc/zb/start_1.sh

# 設置工作目錄
WORKDIR /ywc/zb

# 暴露應用端口
EXPOSE 18080

# 賦予啟動腳本可執(zhí)行權限
RUN chmod +x /ywc/zb/start_1.sh

# 指定啟動容器時運行的命令
ENTRYPOINT ["./start_1.sh"]

4. 構(gòu)建鏡像并運行容器

文件名字:demo-api

版本: 1.0

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

  2. 使用以下命令構(gòu)建鏡像:

docker build -t demo-api:1.0 .

運行Docker容器

18080 端口

運行容器并映射端口

docker run -it -p 18080:18080 demo-api:1.0

如果需要進入容器調(diào)試,可以運行:

   docker run -it demo-api:1.0 /bin/bash

5. 驗證應用運行

訪問容器暴露的端口,確保應用正常運行。例如,如果應用監(jiān)聽在18080端口,可以通過瀏覽器訪問 http://<服務器IP>:18080。

總結(jié)

通過以上步驟,你已經(jīng)成功使用Docker打包并運行了一個Java應用鏡像。這種方式可以極大地簡化應用部署流程,并提高運行環(huán)境的穩(wěn)定性。

到此這篇關于使用Docker打包和運行Java鏡像的完整指南的文章就介紹到這了,更多相關Docker打包和運行Java鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳細介紹如何安裝最新版Docker?Compose

    詳細介紹如何安裝最新版Docker?Compose

    Docker Compose是一個用來定義和運行多個復雜應用的Docker編排工具,下面這篇文章主要給大家介紹了關于如何安裝最新版Docker?Compose的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • docker打tar包命令使用小結(jié)

    docker打tar包命令使用小結(jié)

    本文主要介紹了docker打tar包命令使用小結(jié),詳細講解了使用 docker ps`命令查看容器信息及鏡像名稱與容器名稱的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2025-12-12
  • Docker?pull命令從鏡像倉庫獲取鏡像步驟詳解

    Docker?pull命令從鏡像倉庫獲取鏡像步驟詳解

    docker pull是Docker中最基礎也是最重要的命令之一,它用于從鏡像倉庫中拉取或下載鏡像到本地,這篇文章主要介紹了Docker?pull命令從鏡像倉庫獲取鏡像的相關資料,需要的朋友可以參考下
    2025-07-07
  • Docker掛載/etc/timezone報錯問題

    Docker掛載/etc/timezone報錯問題

    這篇文章主要介紹了Docker掛載/etc/timezone報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 淺析Docker如何創(chuàng)建自定義容器(附通用Python 3.12模板)

    淺析Docker如何創(chuàng)建自定義容器(附通用Python 3.12模板)

    這篇文章主要為大家詳細介紹了Docker如何創(chuàng)建自定義容器,并附上通用Python 3.12模板,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-11-11
  • Docker多階段構(gòu)建鏡像multi-stage詳解

    Docker多階段構(gòu)建鏡像multi-stage詳解

    多階段構(gòu)建是Docker 17.05及以上版本的新特性,允許在一個Dockerfile中使用多個階段,每個階段可以有一個獨立的基礎鏡像,并且可以通過COPY --from命令在階段之間傳遞文件,這樣可以有效地減少最終鏡像的大小,只保留必要的文件
    2025-10-10
  • docker設置redis密碼實現(xiàn)方式

    docker設置redis密碼實現(xiàn)方式

    這篇文章主要介紹了docker設置redis密碼實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2026-06-06
  • Docker Compose從安裝到使用詳細過程

    Docker Compose從安裝到使用詳細過程

    Docker Compose是Docker官方提供的一個工具,用于定義和運行多容器 Docker應用程序,本文給大家介紹Docker Compose從安裝到使用詳細過程,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Docker本地部署Drupal并實現(xiàn)公網(wǎng)訪問的詳細步驟

    Docker本地部署Drupal并實現(xiàn)公網(wǎng)訪問的詳細步驟

    Drupal是使用PHP語言編寫的開源內(nèi)容管理框架(CMF),它由內(nèi)容管理系統(tǒng)(CMS)和PHP開發(fā)框架(Framework)共同構(gòu)成,這篇文章主要給大家介紹了關于Docker本地部署Drupal并實現(xiàn)公網(wǎng)訪問的詳細步驟,需要的朋友可以參考下
    2023-12-12
  • Docker部署Flask應用的實現(xiàn)步驟

    Docker部署Flask應用的實現(xiàn)步驟

    這篇文章主要介紹了Docker部署Flask應用的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論

龙陵县| 且末县| 黔西县| 兴山县| 冕宁县| 嵊州市| 玉树县| 武邑县| 辽阳县| 万年县| 交城县| 葵青区| 华池县| 姜堰市| 金平| 固安县| 麦盖提县| 西宁市| 张家口市| 吴堡县| 密山市| 西昌市| 苏州市| 化州市| 七台河市| 和顺县| 陆川县| 龙江县| 南汇区| 安西县| 光山县| 河北区| 苍梧县| 昌乐县| 平和县| 凤山县| 内丘县| 松江区| 伽师县| 司法| 巴林左旗|