1. 程式人生 > 其它 >springboot專案在docker中執行

springboot專案在docker中執行

前端時間需要把專案打包到docker中執行,於是就讓組員去探索,最後整個過程是這樣的。

首先我們做java開發,一般都是使用springboot開發,開發完成,我們需要把springboot專案打包成jar包。此時我們jar包就能在伺服器上使用 java -jar xxxx.jar 執行專案了,但是在docker中,需要把jar包在打包成映象。

我的開發環境是windows,然後是雙系統,我在任意一個資料夾,shift+滑鼠右鍵就能調出linux介面

首先我們需要編寫一個Dockerfile檔案 ,把它和springboot打包好的jar包,放到同一個資料夾下面。如果你用linux系統,就把jar包和Dockerfile檔案上傳到linux系統下,只要保證是在同一個目錄下面即可。

Dockerfile內容如下:

FROM registry.otrs365.cn/servicecool/jdk:8u241    #基礎映象,當前新映象是基於那個映象, 像這裡就是基於java 8環境
ADD diantong-IP-4.0.0-SNAPSHOT.jar diantong-IP.jar  #diantong-IP-4.0.0SNAPSHOT.jar為你SpringBoot打包最終的成包名稱,別名為diantong-IP.jar
EXPOSE 9081   # 這個是你專案的要暴露的埠,你專案的埠是什麼這裡就寫什麼
ENTRYPOINT ["java","-jar","/diantong-IP.jar"]     #這句話相當於 java -jar diantongIP.jar

linux系統下,FROM 後面指向你docker中安裝的jdk的映象

注意,Dockerfile是沒有後綴的。

接下來就是構建映象了

在存放Dockerfile和專案jar的目錄下,執行以下的命令(注意後面有一個 . 不能少)

docker build -t diantong-ip .

這裡有一個坑,就是你jar包的名稱不能有大寫的,有大寫你在執行上面命令時也要把大寫改成小寫
等待執行完成,執行成功後docker中就多了個映象了。執行下面命令檢視你的映象:

docker images

啟動容器

-p這個屬性我這邊詳細說一下:9081:9081的意思是將我宿主機的9081埠對映到容器埠9081,我在前
面已經配置過這個埠了

docker run -d -p 9081:9081 diantong-ip

啟動成功,使用

docker ps

就能看到容器了,至此,一個springboot應用就成功放到docker中運行了。

如果需要把這個應用給你的朋友,那隻需要

docker save -o diantongip.tar diantong-ip:latest

就會得到一格diantongip.tar壓縮包,把這個壓縮包發給你的朋友

使用以下命令,就能導進他的docker裡面了

注:此文章寫於2021/08/11 若時間過長,文章內容步驟稍有偏差。

作者:天下沒有收費的bug 出處:https://www.cnblogs.com/LoveBB/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文連結,否則保留追究法律責任的權利。