Docker下运行springboot

177 阅读2分钟
原文链接: blog.csdn.net

原文地址:blog.csdn.net/boling_cava…

本章我们做个Docker镜像,今后用此镜像的容器运行springboot的jar包,再通过端口映射对外提供http服务;

实战环境

本次实战的环境是Ubuntu16,安装的Docker版本是 17.03.2-ce

制作材料

制作镜像所需的材料很简单:jdk1.8安装包,此文件我已分割后上传到github上(由于github上传单个文件不能大于50M,所以只能分割后上传),地址是:github.com/zq2599/spri…,如下图,红框中的文件就是分割好的jdk1.8安装包:
这里写图片描述

Dockerfile

Dockerfile内容如下,每行都有注释,就不再赘述了:

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

#基础镜像使用centos7
FROM centos:centos7

#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>

#定义工作目录
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文件(地址: github.com/zq2599/spri…),放入本机的 /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上去了;