以helloworld应用为例
分析:使用springboot框架打包生成的helloworld.jar包,运行所依赖的环境包括linux环境和jdk,若自己的应用依赖其他环境,可自行添加。
我在idea中创建helloworld项目使用的是jdk11,故在linux虚拟机中先准备好jdk-11_linux-x64_bin.tar.gz,所需准备的文件如下
1. 创建Dockerfile文件
vim Dockerfile
2. 编写Dockerfile脚本
#基于centos构建
FROM centos
#作者信息
MAINTAINER wu <1456144807@qq.com>
#运行脚本创建文件夹
RUN mkdir /usr/local/java
#添加并解压jdk压缩包到指定目录
ADD jdk-11_linux-x64_bin.tar.gz /usr/local/java
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk-11
ENV PATH $JAVA_HOME/bin:$PATH
#暴露端口
EXPOSE 8080
# VOLUME 指定了临时文件目录为/tmp
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
#添加helloworld.jar包
ADD helloworld.jar /app.jar
#touch 命令会将时间戳更新到文件、目录,用于创建和更新文件时跟踪文件。
RUN bash -c 'touch /app.jar'
#运行jar包
ENTRYPOINT ["java","-jar","/app.jar"]
3. 构建镜像
docker build -t myhelloworld .
4. 运行镜像
#查看镜像
docker images
#运行镜像
docker run -d --name helloworld01 -p 8080:8080 0eb2bb185940
5.测试
使用浏览器访问 虚拟机ip:8080