Docker将SpringBootj打成的jar包在docker环境中打包成镜像

怎甘沉沦 提交于 2020-05-04 20:00:42

1.我的场景

  我开发了一个自己的博客项目,发现每次上传jar包执行java -jar 这个命令启动这个项目很麻烦,我又不想写脚本;我的数据库什么的等其他环境都是使用docker来安装的,发现 docker安装 我需要的开发环境真的很方便,都是别人做好的镜像,直接pull拉下来就好;然后启动镜像的时候做好端口映射以及安装目录的映射就好了,后面启动镜像很方便只需要docker start +容器id就好了,好了不多说,我们现在就开始打包spingboot项目吧。 

2.打包springboot项目

执行mvn package 命令,将项目使用maven打成jar包如下图:

3.DockerFile配置内容

FROM java:8-alpine
ADD my-blog-4.0.0-SNAPSHOT.jar app.jar
EXPOSE 28083
ENTRYPOINT ["java","-jar","/app.jar"]


第一行 需要java8环境的支持
第二行 my-blog-4.0.0-SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为app.jar
第三行 容器对外映射的端口
第四行,ENTRYPOINT 执行项目 app.jar

4.将前面第二步打好的jar包和第三步编辑好的DockerFile文件上传至服务器(需在同一目录下)

这边笔者的docker不是装在本机的,所以需要将这两个文件上传至服务器,如果你在本机有docker环境那么只需要放在一个目录下直接构建就可以了呢。

5.构建docker镜像

在存放jar包和DockerFile的目录下执行下面的命令,注意后面 有个小点不能少

docker build -t my-blog .

运行成功后如下图:

 

看到上图 后就说明您的springboot项目打包成 docker镜像成功了,这个时候执行下面的命令可以查看你的 镜像:

docker images

看到这个的 时候,就说明我们的springboot jar包已经挂载了,下面就可以开始运行你的容器了:

6.启动容器

docker run -d -p 28083:28083 my-blog

-p这个属性我这边详细说一下: 28083:28083的意思是将我宿主机的28083端口映射到容易端口28083,我在前面已经配置过这个端口了

看到如下返回一串id就代表容器启动成功啦

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!