CentOS7中使用Dockerfile部署后台jar包
場景
使用Dockerfile定制鏡像來部署Tomcat項目:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99105626
在上面使用Tomcat部署項目之外,還可以使用Dockfile基于openjdk部署jar包項目。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
1、新建SpringBoot項目,使用基本的web項目模板,然后添加一個get接口.
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController @RequestMapping("/badao") public class DemoController {@GetMapping("/list")public String list(){System.out.println("公眾號:霸道的程序猿");return "公眾號:霸道的程序猿";} }2、將此服務打成一個jar包,命名為badao.jar,并將次jar包上傳到CentOS服務器上
在根目錄下新建目錄
cd / mkdir dockerfiledemo然后將上面的badao.jar上傳到該目錄下,在此目錄下新建Dockerfile文件
vi Dockerfile然后將此文件的內容修改為:
FROM openjdk:8-jdk-alpine MAINTAINER "badaodechengxvyuan" LABEL description="公眾號-霸道的程序猿" WORKDIR app ADD badao.jar /app/badao.jar EXPOSE 9090 CMD java -jar /app/badao.jar3、Dockerfile命令說明
FROM:指定基礎鏡像,必須為第一個命令
MAINTAINER: 維護者信息
LABEL:用于為鏡像添加元數據
ADD:將本地文件添加到容器中,tar類型文件會自動解壓(網絡壓縮資源不會被解壓),可以訪問網絡資源,類似wget
COPY:功能類似ADD,但是是不會自動解壓文件,也不能訪問網絡資源
WORKDIR:工作目錄,類似于cd命令
RUN:構建鏡像時執行的命令
CMD:構建容器后調用,也就是在容器啟動時才進行調用。
ENTRYPOINT:配置容器,使其可執行化。配合CMD可省去"application",只使用參數。
ENV:設置環境變量
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目錄
ARG:用于指定傳遞給構建運行時的變量
USER:指定運行容器時的用戶名或 UID,后續的 RUN 也會使用指定用戶。使用USER指定用戶時,可以使用用戶名、UID或GID,或是兩者的組合。當服務不需要管理員權限時,可以通過該命令指定運行用戶。并且可以在之前創建所需要的用戶
ONBUILD:用于設置鏡像觸發器
4、上面的Dockerfile文件的意思
以openjdk為基礎鏡像
設置工作目錄為app目錄
將當前本地目錄下badao.jar添加到容器add目錄下
暴露9090端口
cmd運行命令啟動jar包。
5、編譯Dockerfile文件生成Docker鏡像
docker build -t badaoimage .注意這里的鏡像名 不能有大寫,后面還有一個點
注意:
-t代表目標鏡像名
.代表Dockerfile文件路徑
如果需要刪除舊的鏡像
docker rmi 鏡像名構建成功后可以通過
docker images看到自己構建的鏡像
6、運行構建的badaoimage鏡像
docker run -d -p 9090:9090 badaoimage然后查看運行中的容器
docker ps并且在瀏覽器中訪問get接口成功。
?
并且查看容器運行的輸出日志
docker logs -f 容器ID?
總結
以上是生活随笔為你收集整理的CentOS7中使用Dockerfile部署后台jar包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS7中使用Docker安装SV
- 下一篇: CenOS7中使用Docker安装配置R