1. 程式人生 > >Springboot專案雲部署 ---- 基於Docker的部署

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專案的全部過程。