Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)
一、創(chuàng)建 docker 目錄
/usr/local/docker
二、將項(xiàng)目打包上傳到目錄
# Jar 包 /usr/local/docker/app.jar # 配置文件 /usr/local/docker/config/application.yml
三、在目錄下創(chuàng)建 Dockerfile 文件
FROM openjdk:8-jre # 將 jar 包添加到容器中 , tar 類(lèi)型文件會(huì)自動(dòng)解壓(網(wǎng)絡(luò)壓縮資源不會(huì)被解壓) , 可以訪問(wèn)網(wǎng)絡(luò)資源 , 類(lèi)似 wget ADD app.jar /usr/local/app.jar # 功能和 ADD 相同 , 不會(huì)自動(dòng)解壓文件 , 也不能訪問(wèn)網(wǎng)絡(luò)資源 # COPY ./config/ /usr/local/config # 配置環(huán)境變量 # ENV JAVA_HOME=/usr/local/java/jdk-8 # ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # ENV PATH=$JAVA_HOME/bin:$PATH # 切換工作目錄 , 相當(dāng)于 cd WORKDIR /usr/local # 映射端口 EXPOSE 80 # ENTRYPOINT 或 CMD 只會(huì)執(zhí)行一次 , 會(huì)覆蓋之前的 ENTRYPOINT 或 CMD 命令 ENTRYPOINT ["java" , "-jar" , "app.jar"]
四、構(gòu)建鏡像
docker build -t app:1.0 .
五、創(chuàng)建并啟動(dòng)容器
docker run --name app -p 80:80 -v ./config/:/usr/local/config -d app:1.0
六、ENTRYPOINT 和 CMD 區(qū)別
需求:想追加一個(gè)命令 -l , 期望執(zhí)行 ls -al
1. CMD
docker run 會(huì)覆蓋 CMD 后面的命令
FROM centos CMD ["ls","-a"]
此時(shí)命令在 docker 啟動(dòng)后自己執(zhí)行, 我們可以在命令行啟動(dòng) docker 鏡像時(shí), 執(zhí)行其他命令行參數(shù), 覆蓋默認(rèn)的 CMD
$ docker run demo -l 此時(shí)會(huì)報(bào)錯(cuò) , '-l' 替換了 'ls -a' 命令 , 沒(méi)有這個(gè)命令導(dǎo)致報(bào)錯(cuò)
2. ENTRYPOINT
docker run 不會(huì)覆蓋 entrypoint 后面的命令,需要使用 --entrypoint 命令覆蓋
$ docker run --entrypoint demo -l 此時(shí)會(huì)報(bào)錯(cuò) , '-l' 替換了 'ls -a' 命令 , 沒(méi)有這個(gè)命令導(dǎo)致報(bào)錯(cuò) $ docker run demo -l 成功執(zhí)行命令 'ls -al'
到此這篇關(guān)于Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker構(gòu)建Jar鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
被棄用的 Docker 會(huì)被 Podman 取代嗎
Docker 是一種以容器化的方式打包、分發(fā)和部署應(yīng)用程序的方式。自 2013 年 3 月 13 日初始版本發(fā)布以來(lái),Docker 已成為容器業(yè)界的事實(shí)標(biāo)準(zhǔn)。而Kubernetes 是一款由 Google 開(kāi)發(fā)的開(kāi)源容器編排系統(tǒng)2020-12-12
DOCKERFILE學(xué)習(xí)及使用注意事項(xiàng)
Dockerfile 由一行行命令語(yǔ)句組成,并且支持以 # 開(kāi)頭的注釋行。一般的,Dockerfile分為四部分:基礎(chǔ)鏡像信息、維護(hù)者信息、鏡像操作指令、容器啟動(dòng)時(shí)執(zhí)行指令2017-02-02
查看docker中運(yùn)行的JVM參數(shù)問(wèn)題及解決方法
這篇文章主要介紹了查看docker中運(yùn)行的JVM參數(shù),方法一使用的是jcmd命令,方法二是jinfo命令,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2022-04-04
docker部署nodejs開(kāi)發(fā)環(huán)境詳細(xì)步驟(基礎(chǔ)示例篇)
這篇文章主要給大家介紹了docker部署nodejs開(kāi)發(fā)環(huán)境詳細(xì)步驟,docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,可以為我們提供安全、可移植、可重復(fù)的自動(dòng)化部署的方式,需要的朋友可以參考下2023-10-10
淺談Docker-compose中的depends_on順序的問(wèn)題解決
本文主要介紹了淺談Docker-compose中的depends_on順序的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
docker打包鏡像后EasyExcel報(bào)錯(cuò),dockerfile缺少字體的解決
解決Docker打包鏡像后EasyExcel報(bào)錯(cuò)的問(wèn)題:1. Dockerfile增加字體配置;2. 使用EasyExcel的write時(shí)添加"inMemory"參數(shù)為true,開(kāi)啟內(nèi)存處理模式(不推薦,1W數(shù)據(jù)以?xún)?nèi)可以考慮)2025-02-02
Ubuntu 搭建基于Docker的LNMP+Redis的開(kāi)發(fā)環(huán)境(圖文)
這篇文章主要介紹了Ubuntu 搭建基于Docker的LNMP+Redis的開(kāi)發(fā)環(huán)境的相關(guān)資料,這里詳細(xì)介紹如何搭建的步驟,并附圖文,需要的朋友可以參考下2016-12-12
CentOS服務(wù)器部署Docker+Jenkins持續(xù)集成環(huán)境的方法
本文詳細(xì)介紹在CentOS服務(wù)器上部署Docker和Jenkins持續(xù)集成環(huán)境的步驟,涵蓋了準(zhǔn)備工作、安裝Docker、配置Docker鏡像加速、安裝Jenkins、配置Jenkins以及集成Docker與Jenkins,通過(guò)這些步驟,讀者可以實(shí)現(xiàn)代碼的持續(xù)集成與快速部署,提高軟件開(kāi)發(fā)效率,感興趣的朋友一起看看吧2025-02-02
Docker鏡像+nginx 部署 vue 項(xiàng)目的方法
這篇文章主要介紹了Docker鏡像+nginx 部署 vue 項(xiàng)目的方法,幫助大家更好的使用docke鏡像,感興趣的朋友可以了解下2020-10-10

