更新时间:2022/8/14 17:33
本文记录了利用docker部署springboot项目的另一种姿势
本文仅为记录学习轨迹,如有侵权,联系删除
之前的文章记录过利用docker部署springboot项目,使用的方式是直接将jar一起打包,构建成一个新的镜像,再运行镜像的方式进行部署,然而这里有一种缺点,就是后面更新jar包,都需要删掉旧的镜像,重新build,再运行,为了解决这种问题,下面列了部署springboot项目的另一种姿势。
以下是本人此次搭建的环境
部署方式:docker
服务器:linux服务器
服务器操作系统:CentOS 7
先创建springboot项目,并且确保可以运行,下面简单写了一个接口
再将该项目进行maven打包生成一个jar,然后在linux服务器上面创建一个目录存放该jar包,如下图
然后在linux服务器上面创建一个目录,用于存放Dockerfile文件,如下图
Dockerfile里面的内容如下
FROM java
EXPOSE 8001
ENTRYPOINT ["java","-Xmx256m","-Xms256m","-jar","/data/java/jar/springboot-docker-test.jar"]
注意:
这里的/data/java/jar/springboot-docker-test.jar路径是后续容器里面运行的jar包的路径,路径可以自己随便定义,后面我们会在宿主机上面把这个路径挂载出来即可
在Dockerfile路径下构建镜像
构建成功后,启动容器
docker run -d -p 8001:8001 --name test1 -it -v /root/data/docker_data/springboot-docker-test/jar:/data/java/jar springboot-test
注:
(1)重点说明一下”-v /root/data/docker_data/springboot-docker-test/jar:/data/java/jar“这个命令,/root/data/docker_data/springboot-docker-test/jar这个路径是我们把打包的jar上传到linux服务器上面的路径,/data/java/jar这个路径是Dockerfile文件里面执行命令的路径(ENTRYPOINT),意思就是把宿主机的jar路径挂载进容器里面去,这样启动的时候用的jar包就是宿主机的jar包,后续更新jar的时候,只要替换宿主机的jar即可,之后容器重新启动就实现了更新
启动后访问路径
例如在原来的代码上,又新加了个接口
然后重新maven打包,再把jar替换掉服务器上面的jar即可,记得jar名称得保持一致