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

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

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

摘要

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

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

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

引言

Docker作為一種輕量級容器化技術(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。如果尚未安裝,請參考官方文檔進(jìn)行安裝。

  • 加載基礎(chǔ)Java鏡像使用以下命令加載Java鏡像(這里假設(shè)你已經(jīng)有了一個本地的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)。
    • 啟動腳本(start_1.sh)。
    • Dockerfile。

2. 編寫啟動腳本

以下是一個完整的start_1.sh腳本,用于啟動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

# 啟動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 "啟動 $JarFile..." >> $LogDir$OutFile
sleep 3s

# 實(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è)置時區(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

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

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

# 賦予啟動腳本可執(zhí)行權(quán)限
RUN chmod +x /ywc/zb/start_1.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)行了一個Java應(yīng)用鏡像。這種方式可以極大地簡化應(yīng)用部署流程,并提高運(yùn)行環(huán)境的穩(wěn)定性。

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

相關(guān)文章

  • Docker容器開啟設(shè)置自動啟動的實(shí)現(xiàn)方法

    Docker容器開啟設(shè)置自動啟動的實(shí)現(xiàn)方法

    通過在Docker中設(shè)置容器的默認(rèn)啟動命令,我們可以實(shí)現(xiàn)在容器啟動時自動啟動服務(wù)的功能,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Docker案例分析:搭建Redis服務(wù)

    Docker案例分析:搭建Redis服務(wù)

    這篇文章主要介紹了Docker案例分析:搭建Redis服務(wù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Docker簡單入門使用教程

    Docker簡單入門使用教程

    這篇文章主要介紹了Docker簡單入門教程,幫助大家開始學(xué)習(xí)docker容器,感興趣的朋友可以了解下
    2020-08-08
  • Docker使用Link在容器之間建立連接

    Docker使用Link在容器之間建立連接

    這篇文章主要介紹了Docker使用Link在容器之間建立連接的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 一文詳解docker容器中的memory限制

    一文詳解docker容器中的memory限制

    在Docker中,內(nèi)存管理是非常重要的一部分,Docker提供了一些功能來管理容器的內(nèi)存使用情況,其中包括內(nèi)存限制、內(nèi)存交換和內(nèi)存統(tǒng)計等,本文給大家詳細(xì)介紹了docker容器中的memory限制,需要的朋友可以參考下
    2024-04-04
  • 使用Docker容器在Linux上部署MySQL方式

    使用Docker容器在Linux上部署MySQL方式

    本文詳細(xì)介紹了如何在Linux上使用Docker部署MySQL服務(wù)器,包括下載鏡像、啟動容器、連接到服務(wù)器、停止和刪除容器,以及升級服務(wù)器的步驟
    2025-02-02
  • docker環(huán)境下安裝jenkins容器的詳細(xì)教程

    docker環(huán)境下安裝jenkins容器的詳細(xì)教程

    這篇文章主要介紹了docker環(huán)境下安裝jenkins容器的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作示例

    CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作示例

    這篇文章主要介紹了CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作,結(jié)合實(shí)例形式分析了基于CentOS7.2平臺docker安裝、證書和密鑰生成、私有鏡像創(chuàng)建與啟動等操作相關(guān)命令與使用技巧,需要的朋友可以參考下
    2018-06-06
  • docker?創(chuàng)建容器時指定容器ip的實(shí)現(xiàn)示例

    docker?創(chuàng)建容器時指定容器ip的實(shí)現(xiàn)示例

    在實(shí)際部署中,我們需要指定容器ip,本文主要介紹了docker?創(chuàng)建容器時指定容器ip,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法

    Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法

    這篇文章主要介紹了Docker內(nèi)如何訪問本機(jī)(宿主機(jī))的具體方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論