Docker構建Jar鏡像的方法實現(xiàn)
更新時間:2023年10月10日 11:51:48 作者:baihb1024
本文主要介紹了Docker構建Jar鏡像的方法實現(xiàn),主要包括編寫Dockerfile、構建鏡像、測試鏡像等操作,具有一定的參考價值,感興趣的可以了解一下
一、創(chuàng)建 docker 目錄
/usr/local/docker
二、將項目打包上傳到目錄
# Jar 包 /usr/local/docker/app.jar # 配置文件 /usr/local/docker/config/application.yml
三、在目錄下創(chuàng)建 Dockerfile 文件
FROM openjdk:8-jre # 將 jar 包添加到容器中 , tar 類型文件會自動解壓(網絡壓縮資源不會被解壓) , 可以訪問網絡資源 , 類似 wget ADD app.jar /usr/local/app.jar # 功能和 ADD 相同 , 不會自動解壓文件 , 也不能訪問網絡資源 # 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 # 切換工作目錄 , 相當于 cd WORKDIR /usr/local # 映射端口 EXPOSE 80 # ENTRYPOINT 或 CMD 只會執(zhí)行一次 , 會覆蓋之前的 ENTRYPOINT 或 CMD 命令 ENTRYPOINT ["java" , "-jar" , "app.jar"]
四、構建鏡像
docker build -t app:1.0 .
五、創(chuàng)建并啟動容器
docker run --name app -p 80:80 -v ./config/:/usr/local/config -d app:1.0
六、ENTRYPOINT 和 CMD 區(qū)別
需求:想追加一個命令 -l , 期望執(zhí)行 ls -al
1. CMD
docker run 會覆蓋 CMD 后面的命令
FROM centos CMD ["ls","-a"]
此時命令在 docker 啟動后自己執(zhí)行, 我們可以在命令行啟動 docker 鏡像時, 執(zhí)行其他命令行參數, 覆蓋默認的 CMD
$ docker run demo -l 此時會報錯 , '-l' 替換了 'ls -a' 命令 , 沒有這個命令導致報錯
2. ENTRYPOINT
docker run 不會覆蓋 entrypoint 后面的命令,需要使用 --entrypoint 命令覆蓋
$ docker run --entrypoint demo -l 此時會報錯 , '-l' 替換了 'ls -a' 命令 , 沒有這個命令導致報錯 $ docker run demo -l 成功執(zhí)行命令 'ls -al'
到此這篇關于Docker構建Jar鏡像的方法實現(xiàn)的文章就介紹到這了,更多相關Docker構建Jar鏡像內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05

