springboot採用Docker容器化,實現可執行jar檔案編譯成映象以及映象的釋出
阿新 • • 發佈:2018-12-23
作者:ydw_武漢
聯絡方式:[email protected]
前言:
Docker是一個linux的容器管理工具,在現在的架構中,使用非常普遍,它允許使用者把容器映象推送到一個公共的庫或者是私有的映象庫中,使用也方便,對於之前專案的部署為了部署環境的統一也很麻煩,現在有了映象這個概念之後,就很容易實現環境的統一,而且在國內有很多的雲容器,也非常的方便用於部署和開發。
springboot是一個基於spring的敏捷開發架構,由於他自帶Tomcat他可以編譯成一個可執行的jar檔案,當然也可以和傳統專案一樣編譯成war包部署到Tomcat中。
今天主要講解如何把我們的一個Springboot的應用程式部署為一個映象,並且執行這個映象。
在正式開始之前需要做好以下準備工作:
1.安裝Docker,mac使用者使用brew很好裝,也可以到Docker的官網上下載對應的安裝包安裝。Docker對Windows的支援現在已經很好了,可以不需要在安裝虛擬機器。
官網下載地址如下:https://www.docker.com/community-edition#/download 點選開啟下載連結
選擇對應的版本下載好直接安裝即可。
注意事項:
驗證是否安裝成功:
2.使用Idea建立一個最簡單的Hello word的專案。
第一步:在maven中新增Docker的外掛,並且做好相關的屬性配置
<properties> //定義映象名字的字首(隨便定義,開心就好) <docker.image.prefix>ydw</docker.image.prefix> </properties> <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> //定義映象的名字(隨便定義,開心就好也可以是:ydw/test) <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> //配置需要編譯的jar檔案的地址(這個不能填錯,否則不能構建) <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
第二步:
命令如下:
install dockerfile:build
成功編譯的日誌:
最後開啟cmd或者是powshell檢視映象檔案:[INFO] Successfully built ydw/test:latest [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 19.733 s [INFO] Finished at: 2018-01-18T15:50:38+08:00 [INFO] Final Memory: 38M/522M [INFO] ------------------------------------------------------------------------ Process finished with exit code 0
命令:docker images
D:\workspace_new\docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ydw/test latest 43ab54dcecca 3 minutes ago 116MB
<none> <none> 049a87970ebf 4 hours ago 116MB
openjdk 8-jdk-alpine 224765a6bdbe 8 days ago 102MB
java 8 d23bdf5b1b1b 12 months ago 643MB
上面紅色標註的就是我們剛生產的映象。執行測試:docker run -d -p 8080:8080 --name ydwAppTest ydw/test
開啟瀏覽器:httl://localhost:8080