1. 程式人生 > >Docker下執行springboot

Docker下執行springboot

本章我們做個Docker映象,今後用此映象的容器執行springboot的jar包,再通過埠對映對外提供http服務;

實戰環境

本次實戰的環境是Ubuntu16,安裝的Docker版本是17.03.2-ce

製作材料

製作映象所需的材料很簡單:jdk1.8安裝包,此檔案我已分割後上傳到github上(由於github上傳單個檔案不能大於50M,所以只能分割後上傳),地址是:https://github.com/zq2599/springbootrun,如下圖,紅框中的檔案就是分割好的jdk1.8安裝包:
這裡寫圖片描述

Dockerfile

Dockerfile內容如下,每行都有註釋,就不再贅述了:

# Docker image for springboot file run
# VERSION 0.0.1
# Author: bolingcavalry

#基礎映象使用centos7
FROM centos:centos7

#作者
MAINTAINER BolingCavalry <[email protected]>

#定義工作目錄
ENV WORK_PATH /usr/local/work

#定義jdk1.8的資料夾
ENV JDK_PACKAGE_FILE jdk1.8.0_144

#定義jdk1.8的檔名
ENV JDK_RPM_FILE jdk-8u144-linux-x64.rpm

#yum更新
RUN yum -y update #把分割過的jdk1.8安裝檔案複製到工作目錄 COPY ./jdkrpm-* $WORK_PATH/ #用本地分割過的檔案恢復原有的jdk1.8的安裝檔案 RUN cat $WORK_PATH/jdkrpm-* > $WORK_PATH/$JDK_RPM_FILE #本地安裝jdk1.8 RUN yum -y localinstall $WORK_PATH/$JDK_RPM_FILE #暴露8080埠 EXPOSE 8080

將Dockerfile和JDK安裝包的分割檔案放在同一目錄下,在此目錄下執行如下命令:

docker build -t bolingcavalry/springbootrun:0.0
.1 .

稍後即構建成功,如下圖所示:
這裡寫圖片描述

驗證映象

驗證此映象的方法是用該映象啟動一個容器,再執行一個spring boot工程試試;

  1. 執行以下命令啟動一個容器:
docker run --name=test001 -p 8080:8080 -idt -v /usr/local/work/share:/usr/Downloads bolingcavalry/springbootrun:0.0.1

該容器啟動後,8080埠被對映到前電腦的8080埠,目錄/usr/Downloads被對映到當前電腦的/usr/local/work/share目錄;
2. 執行docker ps命令看一下本機活躍容器,如下圖,容器啟動成功:
這裡寫圖片描述
3. 您可以自己建一個spring boot的web工程,做個最簡單的controller,再打包成jar檔案,或者直接用我的git倉庫中的springbootdemo-0.0.1-SNAPSHOT.jar檔案(地址:https://github.com/zq2599/springbootrun),放入本機的/usr/local/work/share目錄;
4. 執行docker exec -it test001 /bin/bash命令進入容器,再進入容器的/usr/Downloads目錄,這個目錄和當前電腦的/usr/local/work/share是對映關係,所以步驟3中複製的springbootdemo-0.0.1-SNAPSHOT.jar檔案就在這個目錄下了;
5. 執行命令java -jar springbootdemo-0.0.1-SNAPSHOT.jar,啟動spring boot成功,如下圖:
這裡寫圖片描述
6. 我的電腦IP是192.168.119.155,所以用瀏覽器訪問http://192.168.119.155:8080,看到如下資訊表示服務正常:
這裡寫圖片描述

以上就是springboot執行環境映象的製作過程,您可以自己試著做出這個映象檔案,也可以直接使用bolingcavalry/springbootrun:0.0.1這個映象,因為我已push到hub.docker.com上去了;