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