docker部署springboot项目实践(更新无需重新build)

 更新时间:2026年01月06日 09:45:33   作者:最强菜鸟  
文章描述了使用Docker部署Spring Boot项目的另一种方式,通过在宿主机上挂载jar包路径,实现jar包的热更新,避免了每次更新都需要重新构建镜像的问题

一、问题

之前的文章记录过利用docker部署springboot项目,使用的方式是直接将jar一起打包,构建成一个新的镜像,再运行镜像的方式进行部署,然而这里有一种缺点,就是后面更新jar包,都需要删掉旧的镜像,重新build,再运行,为了解决这种问题,下面列了部署springboot项目的另一种姿势。

二、环境

以下是本人此次搭建的环境

  • 部署方式:docker
  • 服务器:linux服务器
  • 服务器操作系统:CentOS 7

三、部署jar包

先创建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即可,之后容器重新启动就实现了更新

启动后访问路径

四、更新jar包

例如在原来的代码上,又新加了个接口

然后重新maven打包,再把jar替换掉服务器上面的jar即可,记得jar名称得保持一致

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Docker如何添加自定义网桥

    Docker如何添加自定义网桥

    本篇文章主要介绍了Docker如何添加自定义网桥,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • docker可视化管理工具portainer忘记密码重置教程的实现

    docker可视化管理工具portainer忘记密码重置教程的实现

    本文主要介绍了docker可视化管理工具portainer忘记密码重置教程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Docker镜像的制作与使用浅析

    Docker镜像的制作与使用浅析

    这篇文章主要介绍了Docker镜像的制作与使用浅析的相关资料,需要的朋友可以参考下
    2022-11-11
  • Docker+Jenkins实现一键自动化部署项目的图文教学

    Docker+Jenkins实现一键自动化部署项目的图文教学

    Jenkins是一个广泛使用的开源持续集成工具,它能自动化构建,测试和部署软件项目,本文主要介绍了关于docker搭建Jenkins实现一键自动化部署项目,需要的朋友可以参考下
    2025-05-05
  • docker搭建minio集群的实现示例

    docker搭建minio集群的实现示例

    Docker MinIO集群是一种基于Docker的MinIO分布式存储解决方案,本文主要介绍了docker搭建minio集群的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • docker运行nginx容器并挂载数据卷

    docker运行nginx容器并挂载数据卷

    本文主要介绍了docker运行nginx容器,并通过挂载目录将容器与宿主机的数据进行共享和统一管理,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • 在Docker容器中使用Arthas的详细步骤

    在Docker容器中使用Arthas的详细步骤

    本文不是介绍arthas怎么用的。这里要说的是,如何在我们的docker容器中,使用arthas,对如何在Docker容器中使用Arthas相关知识感兴趣的朋友一起看看吧
    2021-12-12
  • Docker配置MySql环境的实现步骤

    Docker配置MySql环境的实现步骤

    通过使用Docker,开发人员可以更容易地构建、测试和交付应用程序,同时减少了环境配置和依赖项管理的复杂性,本文主要介绍了Docker配置MySql环境的实现步骤,文中通过示例代码介绍的非常详细,感兴趣的可以了解一下
    2024-02-02
  • docker安装sentinel的实现示例

    docker安装sentinel的实现示例

    本文主要介绍了docker安装sentinel的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • 深入解析docker文件分层原理

    深入解析docker文件分层原理

    这篇文章主要介绍了docker文件分层,本文使用一个docker container示例,讲述docker的文件分层的一些原理,需要的朋友可以参考下
    2022-04-04

最新评论