Docker如何將jar包裝為Image并運(yùn)行
參考資料:
參考課程:https://ke.gupaoedu.cn/play/288/5/37604?phaseId=6
準(zhǔn)備材料:
1. 可運(yùn)行且可訪問的jar包
@Controller
public class DockerController {
@PostMapping("helloWorld")
public ResponseEntity<String> helloWorld(){
System.out.println("=====>helloWorld<=====");
return new ResponseEntity<>("helloWorld",HttpStatus.OK);
}
}
2. Docker環(huán)境

原理介紹
基于docker文件的分層(layer)概念
DockerFile可以通過程序,將很多層變成一個(gè)image

DockerFile 有自己的語(yǔ)法,可以參考docker-library中的文件,結(jié)合AI幫助來(lái)寫
將Jar包打包為Image:
1. 執(zhí)行如下命令,將項(xiàng)目打包成jar包
mvn clean package

2. 創(chuàng)建文件夾并上傳文件
在linux服務(wù)器創(chuàng)建文件夾,并將打包好的jar包上傳至文件夾中,比如 docker_helloWorld
mkdir docker_helloWorld


3. 創(chuàng)建dockerfile 編輯
使用命令,在文件夾中,創(chuàng)建Dockerfile,并編輯
vi Dockerfile
然后將下面內(nèi)容粘貼進(jìn)去(具體內(nèi)容可以用AI進(jìn)行解釋)
FROM openjdk:8 MAINTAINER peter2026 LABEL name="dockerfile-demo" version="1.0" author="peter2026" COPY docker-hello-world-0.0.1-SNAPSHOT.jar dockerfile-image.jar CMD ["java","-jar","dockerfile-image.jar"]
4. 構(gòu)建鏡像
如果使用默認(rèn)的dockerHub來(lái)獲取openJDK的話,可能需要做一些代理或者加速服務(wù),參考B站
如果還是不行的話,可以先把from語(yǔ)句的鏡像拉取到本地,然后再構(gòu)建
docker pull cf-workers-docker-io-6es.pages.dev/openjdk:8u102-jdk
執(zhí)行如下語(yǔ)句進(jìn)行構(gòu)建(注意后面的一點(diǎn),表示當(dāng)前目錄)
docker build -t my-docker-image .

然后執(zhí)行docker images 就可以看到構(gòu)建好的鏡像

5. 運(yùn)行鏡像
將構(gòu)建好的鏡像運(yùn)行,執(zhí)行下面命令
docker run -d --name my_container_01 -p 6666:8080 my-docker-image
上面是將container的8080端口映射到了Linux虛擬機(jī)的6666端口
執(zhí)行下面命令查看運(yùn)行的容器
docker ps

6. 訪問運(yùn)行的jar包
查看docker所在系統(tǒng)的IP
ip a

然后用PostMan進(jìn)行訪問即可,比如
192.168.124.128:6666/helloWorld

到此這篇關(guān)于Docker如何將jar包裝為Image并運(yùn)行的文章就介紹到這了,更多相關(guān)docker jar包裝為Image內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker編寫java的jar完整步驟記錄
- docker實(shí)現(xiàn)部署jar包項(xiàng)目教程(包括單個(gè)和多個(gè)一起部署)
- docker使用jdk21啟動(dòng)jar包報(bào)錯(cuò)的解決方案
- 使用Docker compose啟動(dòng)自定義jar包的步驟詳解
- Docker?DockerFile部署java?jar項(xiàng)目包及Mysql和Redis的詳細(xì)過程
- 如何在Docker中部署運(yùn)行jar
- 如何打jar包為Docker鏡像并部署
- docker啟動(dòng)jar包輸出日志的問題以及解決
- docker運(yùn)行jar包加載外部配置文件方式
相關(guān)文章
部署Docker管理面板DweebUI的實(shí)現(xiàn)
DweebUI是一款簡(jiǎn)化Docker容器管理的Web界面,支持實(shí)時(shí)監(jiān)控、多用戶權(quán)限及跨平臺(tái)操作,本文就來(lái)介紹部署Docker管理面板DweebUI的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-06-06
Docker下Redis集群(主從+哨兵)安裝配置的實(shí)現(xiàn)步驟
本文主要介紹了Docker下Redis集群(主從+哨兵)安裝配置的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-07-07
Docker拉取鏡像過慢或卡死的解決方法(親測(cè)有效)
本文主要介紹了Docker拉取鏡像過慢或卡死的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法
本文主要介紹了Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Docker執(zhí)行DockerFile構(gòu)建過程指令解析
這篇文章主要為大家介紹了Docker執(zhí)行DockerFile構(gòu)建過程及DockerFile的指令解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪<BR>2022-04-04
docker 安裝ElasticSearch 6.x的教程詳解
這篇文章主要介紹了docker 安裝ElasticSearch 6.x的教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04
Docker?compose啟動(dòng)服務(wù)遇到的問題小結(jié)
這篇文章主要介紹了Docker?compose啟動(dòng)服務(wù)遇到的問題小結(jié),這個(gè)是檢驗(yàn)我們的docker?compose掌握程度,因此里面的鏡像沒有提前拉取,掛載數(shù)據(jù)卷的目錄也沒有提前創(chuàng)建,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11

