Springboot專案雲部署 ---- 基於Docker的部署
在剛學習springboot的時候就瞭解到專案可以通過打包為jar或者war的格式放到伺服器上通過命令直接執行,讓部署的過程變得十分美麗。隨著主流的雲計算髮展,應用平臺都支援釋出docker映象,所以將專案直接部署在容器中,並執行映象的容器變的也十分重要。
有時候分散式專案的釋出,時刻要保證他們的環境依賴一致,比如jdk,webserver,appserver,安全設定,資料庫等,而且docker的隔離性以及低耗性,使用起來可以更快的部署交付、遷移和擴充套件
這也是我接下來需要學習的springcolud中的重要內容,簡稱微服務。
下面我演示一個簡單的使用docker部署專案的例子。
首先在本機進入專案目錄下,使用命令mvn package
對專案進行打包,這裡選擇的打包方式為jar。
打包成功後在專案目錄中生成target目錄,其中有打包後的jar檔案,可以使用java -jar **.jar
執行測試是否能成功執行。
在部署之前保證伺服器安裝了docker,在Centos7.2中可以使用下列的命令進行安裝
yum install docker
啟動docker並保持開機自啟
systemctl start docker
systemctl enable docker
接下來將jar檔案上傳到linux伺服器上部署,首先在專案jar檔案同級目錄下建立一個Dockerfile檔案,因為Docker是使用Dockerfile檔案來編譯自己的映象的。
檔案的內容如下:
檔案內容解釋:
1、基映象為JAVA 版本為8
2、作者名字
3、將專案新增到映象中,並重命名為app.jar
4、執行映象檔案,監聽埠為8080
5、啟動時執行java -jar app.jar
其中使用Dockerfile檔案中的命令有很多,這裡簡單的介紹下
- 1 FROM 命令
FROM 指令知名了當前映象繼承的基映象,編譯當前的映象是會自動下載基映象。
FROM ubuntu
- 2 MAINTAINER 指令
MAINTAINER 指令指明瞭當前映象的作者
- 3 RUN指令
RUN指令可以在當前映象上執行linux命令,並形成一個新的層(編譯時動作)
RUN /bin/bash -c "echo helloworld" 或
RUN ["/bin/bash", "-c", "echo hello"]
- 4 CMD指令
CMD指令指明瞭啟動映象容器時的預設行為,該指令在Dockerfile中唯一(執行時動作)
CMD echo “this is a test”
- 5 EXPOSE 指令
EXPOSE知名了映象執行時的容器必需監聽指定的埠
- 6 ENV指令
ENV指令可以用來設定環境變數
ENV myName=will
- 7 ADD指令
ADD指令是從當前工作目錄複製檔案到映象檔案中
ADD text.txt /mydir/
- 8 ENTRYPOINT 指令
RNTRYPOINT 指令可以讓容器像一個可執行程式一樣執行,並接受引數執行
RNTRYPOINT ["/bin/echo"]
docker run -d image_name "this is a test!!"
接下來編譯映象,在上面的目錄下執行下面的命令:
docker build -t wisely/dockerdemo .
其中wisely/dockerdemo 為映象名稱,其中wisely為docker映象的命名習慣,最後的 . 表示Dockerfile在當前路徑下。
編譯完成後可以看到映象已經建立成功
執行映象使用下面的命令
docker run -d --name demo -p 8080:8080 wisely/dockerdemo
檢視當前的容器狀態
最後通過訪問伺服器,可以看到專案的成功部署。
以上就是使用docker部署springboot專案的全部過程。