啟動(dòng)docker的時(shí)候如何把參數(shù)傳遞給docker里面的項(xiàng)目(推薦)
很多時(shí)候我們要把自己本地的項(xiàng)目打成一個(gè)docker鏡像
大部分都是Tomcat或者現(xiàn)在很流行的springboot項(xiàng)目
如果只是帶參數(shù)運(yùn)行一個(gè)springboot項(xiàng)目是很簡單的,如下
java -Dserver.port=8080 -jar xxx.jar
以上命令就把端口號(hào)設(shè)置為8080啟動(dòng)jar包,無需去改jar包里面的配置文件
但是如果已經(jīng)把這個(gè)jar包打成了鏡像之后,怎么傳遞呢
看下docker run的參數(shù)選項(xiàng),里面有一個(gè)-e,環(huán)境變量
一開始被"環(huán)境"兩個(gè)字誤導(dǎo)了,以為就跟我們裝JDK的時(shí)候說的環(huán)境變量是一個(gè)意思
其實(shí)也可以用來傳遞普通變量,如下
1,springboot項(xiàng)目
先改Dockerfile:
FROM java:8 ADD microsoft.jar /root ENV PARAMS="" ENTRYPOINT ["sh","-c","java $PARAMS -jar /root/microsoft.jar"]
構(gòu)建鏡像命令:
docker build -t 鏡像名稱 .
啟動(dòng)命令:
docker run -d -e PARAMS="-Dserver.port=8080" -p 2000:8080 鏡像名稱
這樣jar包在啟動(dòng)的時(shí)候就會(huì)去讀輸入變量
2,Tomcat項(xiàng)目
Dockerfile:
#基本鏡像
FROM centos
#把你上傳的jdk放到docker容器里面的root目錄下
ADD jdk-8u11-linux-x64.tar.gz /root
#把你上傳的Tomcat放到docker容器里面的root目錄下
ADD apache-tomcat-7.0.57.tar.gz /root
#設(shè)置環(huán)境變量
ENV JAVA_HOME /root/jdk1.8.0_11
#設(shè)置環(huán)境變量
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#設(shè)置環(huán)境變量
ENV CATALINA_HOME /root/apache-tomcat-7.0.57
#設(shè)置環(huán)境變量
ENV CATALINA_BASE /root/apache-tomcat-7.0.57
#設(shè)置環(huán)境變量
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV PARAMS=""
#執(zhí)行startup.sh并打開日志
ENTRYPOINT echo $PARAMS > /root/params.txt && /root/apache-tomcat-7.0.57/getParams.sh && /root/apache-tomcat-7.0.57/bin/startup.sh && tail -F /root/apache-tomcat-7.0.57/logs/catalina.out/root/params.txt 存放參數(shù)的TXT文件
getParams.sh 讀取參數(shù)的腳本
startup.sh 讀完參數(shù)啟動(dòng)Tomcat
啟動(dòng)命令:
docker run -d -e PARAMS="user=root&pwd=lw123" -p 2000:8080 params
這樣Tomcat在啟動(dòng)之前就會(huì)先去處理你傳遞的參數(shù),怎么處理就根據(jù)實(shí)際的業(yè)務(wù)來處理
到此這篇關(guān)于啟動(dòng)docker的時(shí)候怎么把參數(shù)傳遞給docker里面的項(xiàng)目的文章就介紹到這了,更多相關(guān)啟動(dòng)docker傳遞參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker安裝nginx并部署前端項(xiàng)目的全過程
作為一個(gè)前端,代碼寫完,最后部署到服務(wù)器,這是一個(gè)必須要了解的過程,這篇文章主要給大家介紹了關(guān)于docker安裝nginx并部署前端項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2022-05-05
Docker?數(shù)據(jù)目錄遷移的實(shí)現(xiàn)步驟
本文詳細(xì)記錄了將Docker數(shù)據(jù)目錄從/var/lib/docker遷移到更大容量的分區(qū)的全過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
docker測試時(shí)候命令無法補(bǔ)全的解決方法
因?yàn)樽罱趯W(xué)習(xí)使用Docker,所以出現(xiàn)了好多的問題,昨天遇到的一個(gè)問題是在docker測試時(shí)候發(fā)現(xiàn)命令無法補(bǔ)全,通過查找資料最后解決了,現(xiàn)在將方法分享給有需要的人,大家可以參考學(xué)習(xí)。2016-11-11
詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境
這篇文章主要介紹了詳解從 0 開始使用 Docker 快速搭建 Hadoop 集群環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03
Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問的實(shí)現(xiàn)
這篇文章主要介紹了Linux上使用docker啟動(dòng)redis并遠(yuǎn)程訪問的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
docker?運(yùn)行花生殼實(shí)現(xiàn)內(nèi)外網(wǎng)穿透的詳細(xì)過程
這篇文章主要介紹了docker?運(yùn)行花生殼實(shí)現(xiàn)內(nèi)外網(wǎng)穿透,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

