一、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