docker如何將jar包生成鏡像并將宿主機(jī)目錄掛載
docker將jar包生成鏡像并將宿主機(jī)目錄掛載
實(shí)現(xiàn)原理
先利用jar包生成一個(gè)鏡像文件,然后docker啟動(dòng)即可
編寫dockerfile
# 基礎(chǔ)鏡像 # 指定要構(gòu)建的spring boot服務(wù)鏡像的基礎(chǔ)源鏡像是java,版本是8;如果本地沒有java:8的鏡像,就會(huì)從dockerHub下載。一般首次下載,以后就不會(huì)下載了。 FROM openjdk:8-jre # author MAINTAINER dwl # 時(shí)區(qū)問題 解決docker 容器中的時(shí)候和宿主機(jī)統(tǒng)一 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone # jar包掛載目錄 VOLUME /app/sh # 創(chuàng)建目錄 RUN mkdir -p /app/sh # 宿主機(jī)文件掛載目錄 VOLUME /home/kxyjy # 指定路徑 WORKDIR /app/sh # 復(fù)制jar文件到路徑 COPY ./sh-modules-alarm.jar /app/sh/sh-modules-alarm.jar # 啟動(dòng)系統(tǒng)服務(wù) ENTRYPOINT ["java","-jar","sh-modules-alarm.jar"]
構(gòu)建鏡像
docker build -t sh-alarm:1.0.0 .
啟動(dòng)容器
運(yùn)行該鏡像
docker run --name sh-alarm -d -v /home/kxyjy:/home/kxyjy --privileged=true --network=host 23ea
參數(shù)說明
1、Docker運(yùn)行一個(gè)容器后,進(jìn)入容器,cd /home/kxyjy 掛載目錄會(huì)報(bào)錯(cuò)
cannot open directory '.': Permission denied
解決辦法:
docker run時(shí)加一個(gè)參數(shù)
--privileged=true
若是用DockerCompose啟動(dòng),則在docker-compose.yml中添加以下配置
privileged: true
2、-v /home/kxyjy:/home/kxyjy容器掛載在宿主機(jī)的目錄
3、–network=host指向宿主機(jī)ip
docker制作jar鏡像
第一步
首先在你存放jar包 目錄下 創(chuàng)建Dockerfile 文件
touch Dockerfile
第二步
編寫制作鏡像的命令文件也就是Dockerfile文件
vi Dockerfile #指定以jdk 為基礎(chǔ)鏡像,來構(gòu)建此鏡像,可以理解為運(yùn)行的需要基礎(chǔ)環(huán)境 FROM majiajue/jdk1.8 #maintainer 指令 作者是xxx MAINTAINER xxx #將當(dāng)前demo.jar 復(fù)制到容器根目錄下 ADD /home/auth/ymf-auth.jar /home/auth/ymf-auth.jar #暴露容器端口為8080 Docker鏡像告知Docker宿主機(jī)應(yīng)用監(jiān)聽了8080端口 EXPOSE 8080 #容器啟動(dòng)時(shí)執(zhí)行的命令 CMD java -jar -server -Xms256m -Xmx256m -Xmn128m -Xss1m -XX:-UseAdaptiveSizePolicy -XX:MaxTenuringThreshold=15 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError /home/auth/ymf-auth.jar >> /home/auth/logs/ymf-auth.out
第三步
使用docker build 構(gòu)建鏡像 ymf-auth 構(gòu)建之后鏡像名稱 . 表示 Dockerfile 文件在當(dāng)前目錄下
docker build -t ymf-auth .? ?#有一個(gè).符號(hào)喲
第四步
啟動(dòng)鏡像
docker run --name demo -it -v /home/auth:/home/auth #宿主機(jī)目錄與容器目錄映射 作用是只要更新宿主機(jī)jar包 相應(yīng)的容器目錄里的jar包也會(huì)更新 -v /etc/localtime:/etc/localtime # 宿主機(jī)時(shí)間同步容器時(shí)間 -d --restart=always ymf-auth
第五步
查看啟動(dòng)的容器
docker ps
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用docker極簡打包java.jar鏡像并啟動(dòng)
這篇文章主要介紹了如何使用docker極簡打包java.jar鏡像并啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08docke自定義網(wǎng)絡(luò)之容器互聯(lián)
大家好,本篇文章主要講的是docke自定義網(wǎng)絡(luò)之容器互聯(lián),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12Next.js?Docker鏡像私有部署從零實(shí)現(xiàn)
這篇文章主要為大家介紹了Next.js?Docker鏡像私有部署從零實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12docker安裝、調(diào)試qsign簽名服務(wù)器的解決方案
這篇文章主要介紹了docker安裝、調(diào)試qsign簽名服務(wù)器的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-04-04