本人初學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