springboot项目在docker中运行

Posted 天下没有收费的bug

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot项目在docker中运行相关的知识,希望对你有一定的参考价值。

前端时间需要把项目打包到docker中运行,于是就让组员去探索,最后整个过程是这样的。

首先我们做java开发,一般都是使用springboot开发,开发完成,我们需要把springboot项目打包成jar包。此时我们jar包就能在服务器上使用 java -jar xxxx.jar 运行项目了,但是在docker中,需要把jar包在打包成镜像。

我的开发环境是windows,然后是双系统,我在任意一个文件夹,shift+鼠标右键就能调出linux界面

 

 

 

首先我们需要编写一个Dockerfile文件 ,把它和springboot打包好的jar包,放到同一个文件夹下面。如果你用linux系统,就把jar包和Dockerfile文件上传到linux系统下,只要保证是在同一个目录下面即可。

Dockerfile内容如下:

FROM registry.otrs365.cn/servicecool/jdk:8u241    #基础镜像,当前新镜像是基于那个镜像, 像这里就是基于java 8环境
ADD diantong-IP-4.0.0-SNAPSHOT.jar diantong-IP.jar  #diantong-IP-4.0.0SNAPSHOT.jar为你SpringBoot打包最终的成包名称,别名为diantong-IP.jar
EXPOSE 9081   # 这个是你项目的要暴露的端口,你项目的端口是什么这里就写什么
ENTRYPOINT ["java","-jar","/diantong-IP.jar"]     #这句话相当于 java -jar diantongIP.jar

linux系统下,FROM 后面指向你docker中安装的jdk的镜像

 

注意,Dockerfile是没有后缀的。

 

 

 

 

 

接下来就是构建镜像了

在存放Dockerfile和项目jar的目录下,执行以下的命令(注意后面有一个 . 不能少)

docker build -t diantong-ip .

这里有一个坑,就是你jar包的名称不能有大写的,有大写你在运行上面命令时也要把大写改成小写
等待运行完成,执行成功后docker中就多了个镜像了。执行下面命令查看你的镜像:

 

docker images

 

启动容器

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

 

docker run -d -p 9081:9081 diantong-ip

 

启动成功,使用

docker ps

就能看到容器了,至此,一个springboot应用就成功放到docker中运行了。

如果需要把这个应用给你的朋友,那只需要

docker save -o diantongip.tar diantong-ip:latest

就会得到一格diantongip.tar压缩包,把这个压缩包发给你的朋友

使用以下命令,就能导进他的docker里面了

 

 

注:此文章写于2021/08/11   若时间过长,文章内容步骤稍有偏差。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。

以上是关于springboot项目在docker中运行的主要内容,如果未能解决你的问题,请参考以下文章

docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)

在Docker中运行MinIO -- springboot实战电商项目mall4j

springboot配置文件application-dev.properties,application-prod.properties,application-test.properties(代码片

Docker——使用Dockerfile构建SpringBoot项目(打包 & 部署 & 运行)

Docker——使用Dockerfile构建SpringBoot项目(打包 & 部署 & 运行)

docker安装运行nginxtomcat,springBoot项目用Dockerfile打包镜像到docker运行