Docker 部署springboot 應用

本人初學docker,對docker概念還不是很理解,故本文不對docker概念做詳細解釋

Docker是一種Linux容器的實現,Linux容器是基於進程的輕量級資源隔離技術,每一個容器對應操作系統中的一個進程,但是它又會有自己的網絡空間、文件系統、PID等。Docker除了實現Linux容器,還使得容器具有“社會化”的功能,用戶可以將容器鏡像發佈在Docker Hub與其他開發者共享、協作。安裝Docker的教程請參考官方文檔

Spring Boot應用通常被構建爲一個可單獨執行的jar包,通過java -jar ...運行,但是框架本身並沒有提供以服務形式運行在後臺的方法,通常需要藉助Systemd, Supervisord等進程管理工具來實現。另一方面,雖然應用運行環境非常的簡單,但是將他們容器化爲Docker容器鏡像並運行,對於自動化部署、運維都是非常有利的。

本文將以一個最簡單的Spring Boot開發的Web應用爲例,講解如何將其容器化運行。本文的重點是構建Docker鏡像、運行Docker容器
 

1,準備一個centos 的系統,安裝docker ,注意  Docker 要求 CentOS 系統的內核版本高於 3.10

通過 uname -r 命令查看你當前的內核版本

2,將springboot 項目打成jar 包,上傳至服務器,並新建Dockerfile構建鏡像

Dockerfile 內容爲:

FROM java:8
VOLUME /tmp
ADD docker.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

java:8是指Docker Hub上官方提供的java鏡像,版本號是8也就是jdk1.8,有了這個基礎鏡像後,Dockerfile可以通過FROM指令直接獲取它的狀態——也就是在容器中java是已經安裝的,接下來通過自定義的命令來運行Spring Boot應用:

VOLUME /tmp創建/tmp目錄並持久化到Docker數據文件夾,因爲Spring Boot使用的內嵌Tomcat容器默認使用/tmp作爲工作目錄
ADD docker.jar app.jar 將應用jar包複製到/app.jar
ENTRYPOINT表示容器運行後默認執行的命令

3,運行docker構建鏡像命令,docker build -t 跟你想要的鏡像名稱  .(注意最後的 ".")

docker build -t eurekademo .

 

通過命令查看鏡像:docker images

最後運行docker 容器

docker run -d -t 8888:8761 eurekademo

接下來可以訪問試試

訪問成功。。。。。

 

參考https://blog.csdn.net/qq_22211217/article/details/80414227

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章