<推薦閱讀>
Docker 技術發展爲微服務落地提供了更加便利的環境,使用 Docker 部署 Spring Boot 其實非常簡單,這篇文章我們就來簡單學習下。
首先構建一個簡單的 Spring Boot 項目,然後給項目添加 Docker 支持,最後對項目進行部署。
01 一個簡單 Spring Boot 項目
(1)在pom.xml中 ,使用 Spring Boot 2.0 相關依賴
(2)添加 web 和測試依賴
(3)創建一個 DockerController,在其中有一個index()方法,訪問時返回:Hello Docker!
(4)啓動類
添加完畢後啓動項目,啓動成功後瀏覽器放問:http://localhost:8080/,頁面返回:Hello Docker!,說明 Spring Boot 項目配置正常。
02 Spring Boot 項目添加 Docker 支持
(1)在pom.xml-properties 中添加 Docker 鏡像名稱
(2)plugins 中添加 Docker 構建插件
(3)在目錄src/main/docker下創建 Dockerfile 文件,Dockerfile 文件用來說明如何來構建鏡像
這個 Dockerfile 文件很簡單,構建 Jdk 基礎環境,添加 Spring Boot Jar 到鏡像中,簡單解釋一下:
① FROM ,表示使用 Jdk8 環境 爲基礎鏡像,如果鏡像不是本地的會從 DockerHub 進行下載
② VOLUME ,VOLUME 指向了一個/tmp的目錄,由於 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp作爲工作目錄。這個命令的效果是:在宿主機的/var/lib/docker目錄下創建一個臨時文件並把它鏈接到容器中的/tmp目錄
③ ADD ,拷貝文件並且重命名
④ ENTRYPOINT ,爲了縮短 Tomcat 的啓動時間,添加java.security.egd的系統屬性指向/dev/urandom作爲 ENTRYPOINT
這樣 Spring Boot 項目添加 Docker 依賴就完成了。
03 構建打包環境
我們需要有一個 Docker 環境來打包 Spring Boot 項目,在 Windows 搭建 Docker 環境很麻煩,因此我這裏以 Centos 7 爲例。
3.1 安裝 Docker 環境
(1)安裝
(2)安裝完成後,使用下面的命令來啓動 docker 服務,並將其設置爲開機啓動
(3)使用Docker 中國加速器
(4)重新啓動docker
輸入docker version返回版本信息則安裝正常。
3.2 安裝JDK
(1)配置環境變量 打開vim /etc/profile添加一下內容
(2)修改完成之後,使其生效
輸入java -version返回版本信息則安裝正常。
3.3 安裝MAVEN
下載:http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
修改環境變量, 在/etc/profile中添加以下幾行
記得執行source /etc/profile使環境變量生效。
輸入mvn -version返回版本信息則安裝正常。
這樣整個構建環境就配置完成了。
04 使用 Docker 部署 Spring Boot 項目
(1)將項目spring-boot-docker拷貝服務器中,進入項目路徑下進行打包測試。
(2)看到 Spring Boot 的啓動日誌後表明環境配置沒有問題,接下來我們使用 DockerFile 構建鏡像。
(3)第一次構建可能有點慢,當看到以下內容的時候表明構建成功
(4)使用docker images命令查看構建好的鏡像
(5)springboot/spring-boot-docker就是我們構建好的鏡像,下一步就是運行該鏡像
(6)啓動完成之後我們使用docker ps查看正在運行的鏡像
可以看到我們構建的容器正在在運行,訪問瀏覽器:http://192.168.0.x:8080/,返回
說明使用 Docker 部署 Spring Boot 項目成功!