一、JDK8版本

1、编写Dockerfile

FROM java:8
ADD hsjz-0.0.1-SNAPSHOT.jar /hsjz.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/hsjz.jar"]

2、Dockerfile解释

因为我们的docker可以直接pull,jdk8,所以不需要我们额外的准备工作
FROM 表示基于jdk8
ADD表示添加当前目录下的springboot,jar包,并且重命名为 /hsjz.jar
EXPOSE 暴露端口号
ENTRYPOINT 运行容器时,执行命令,运行jar包

3、构建镜像

-t 自动查找当前目录下的Dockerfile文件

docker build -t hsjz:1.0 .

4、查看镜像,并运行镜像


后台运行

docker run -p 8080:8080 --name hsjz -d hsjz:1.1

二、JDK11

由于docker上无法直接获取到jdk11,所以我们需要自己制作JDK11镜像

1、 编写Dockerfile

# 基础镜像
FROM centos 

# 添加JDK11,并解压在/usr/local/
ADD jdk-11_linux-x64_bin.tar /usr/local/

# 配置jdk11 环境变量
ENV JAVA_HOME /usr/local/jdk-11
ENV PATH=$JAVA_HOME/bin:$PATH

# 添加一个数据卷
VOLUME /root/hsjzDocker/file

# 添加springboot jar包,并更名为hsjz_app.jar
ADD hsjz-0.0.1-SNAPSHOT.jar /hsjz_app.jar

EXPOSE 8080
# 启动容器时运行jar包

ENTRYPOINT ["java","-jar","/hsjz_app.jar"]


2、Dockerfile解释

我们jdk11,基于centos制作,需要手动添加一个JDK11,
ENV 用来配置环境变量
其他的和JDK8版本一样

3、构建镜像

docker build -t hsjzjdk11:1.2 .

4、运行镜像获取容器

docker run -p 8080:8080 --name hsjz -d hsjz:1.2