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

使用Docker打包和運(yùn)行Java鏡像的完整指南

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

摘要

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

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

最后會(huì)引導(dǎo)大家加我的微信,方便隨時(shí)交流!

引言

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

正文

1. 準(zhǔn)備工作

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

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

docker load -i <鏡像文件名>

例如:

docker load -i jdk-1.8.0_432.tar

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

docker images

  1. 準(zhǔn)備項(xiàng)目所需文件
    需要準(zhǔn)備的文件包括:

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

2. 編寫啟動(dòng)腳本

以下是一個(gè)完整的start_1.sh腳本,用于啟動(dòng)Java應(yīng)用。每一部分都有詳細(xì)注釋,幫助你理解其功能:

#!/bin/sh
# 設(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"  # 輸出的日志文件名稱

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

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

# 啟動(dòng)Java應(yīng)用
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 "啟動(dòng) $JarFile..." >> $LogDir$OutFile
sleep 3s

# 實(shí)時(shí)顯示日志
tail -f $LogDir$OutFile

3. 編寫Dockerfile

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

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

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

# 設(shè)置時(shí)區(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

# 添加啟動(dòng)腳本
ADD start_1.sh /ywc/zb/start_1.sh

# 設(shè)置工作目錄
WORKDIR /ywc/zb

# 暴露應(yīng)用端口
EXPOSE 18080

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

# 指定啟動(dòng)容器時(shí)運(yùn)行的命令
ENTRYPOINT ["./start_1.sh"]

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

文件名字:demo-api

版本: 1.0

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

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

docker build -t demo-api:1.0 .

運(yùn)行Docker容器

18080 端口

運(yùn)行容器并映射端口

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

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

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

5. 驗(yàn)證應(yīng)用運(yùn)行

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

總結(jié)

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

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

相關(guān)文章

  • 詳細(xì)介紹如何安裝最新版Docker?Compose

    詳細(xì)介紹如何安裝最新版Docker?Compose

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

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

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

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

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

    Docker掛載/etc/timezone報(bào)錯(cuò)問題

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

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

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

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

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

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

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

    Docker Compose從安裝到使用詳細(xì)過程

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

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

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

    Docker部署Flask應(yīng)用的實(shí)現(xiàn)步驟

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

最新評(píng)論

陆良县| 昆山市| 大石桥市| 城固县| 西吉县| 丰台区| 邯郸县| 河源市| 化隆| 丹棱县| 宁乡县| 朝阳市| 玉树县| 东阿县| 永年县| 江山市| 腾冲县| 且末县| 海林市| 武城县| 新闻| 林西县| 揭东县| 兰考县| 邳州市| 巫山县| 义乌市| 吕梁市| 历史| 郧西县| 波密县| 宁远县| 宁陵县| 磐安县| 佛坪县| 龙江县| 建湖县| 克拉玛依市| 临海市| 沙坪坝区| 晋城|