一步步教你把SpringBoot项目打包成Docker镜像

 更新时间:2023年02月24日 10:41:44   作者:天天学爪娃  
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,下面这篇文章主要给大家介绍了关于SpringBoot项目打包成Docker镜像的相关资料,需要的朋友可以参考下

把SpringBoot项目打包成Docker镜像有两种方案:

全自动化:先打好docker镜像仓库,然后在项目的maven配置中配置好仓库的地址,在项目里配置好Dockerfile文件,这样可以直接在idea中打包好后自动上传到镜像仓库,然后去服务器上启动这个镜像就行了。

半自动化:半自动化又有两种方案,一种是Dockerfile文件放在项目里面,一种是放在项目外面。

  • 放在项目里面:springboot pom.xml中配置maven插件支持,打包时会使用项目里面的dockerfile,如果没配置插件支持会报错找不到dockerfile文件
  • 放在项目外面:springboot还是打包成普通的jar,然后把这个jar上传到服务器,同时在服务器创建一个Dockerfile文件,执行docker build命令,把这个jar构建成一个docker镜像,然后通过镜像执行。

一般来说用半自动化比全自动化用的多,本文用的算是半自动化方式的第二种,总体来说有一下几个步骤:

1. 构建SpringBoot项目

编写一个controller

进行本地测试

2. 打包应用

点击package将项目进行打包

打包成功

cmd运行java -jar能够运行成功

可以下载个Docker插件

3. 编写dockerfile

在target里面创建Dockerfile文件,此时Dockerfile文件是高亮的

Dockerfile配置内容(在Idea里面写Dockerfile会有提示)

#发布到网上时只会把jar包和Dockerfile发布上去
COPY *.jar /app.jar
#地址映射
CMD ["--server.port=8080"]
#对外暴露端口
EXPOSE 8080
#执行命令
ENTRYPOINT ["java","-jar","/app.jar"]

4. 构建镜像

将jar包和Dockerfile文件拿出来新建个文件夹放里面,按住shift键打开PowerShell
(注意:本人电脑上安装的是Docker Desktop)

输入命令构建镜像,firstdocker是镜像名(最后的 . 表示 Dockerfile 文件在当前目录下)

查看构建好的镜像(不清楚命令的可以先学一下基础命令)

镜像构建成功后运行容器(第一个为服务器8080端口,第二个8080为docker容器端口)

可以看容器是否在运行和日志信息

访问成功

5. 发布运行

可以将镜像上传到dockerhub,以后使用Docker之后,给别人交付的就是一个镜像即可!

总结

到此这篇关于把SpringBoot项目打包成Docker镜像的文章就介绍到这了,更多相关SpringBoot项目打包Docker镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot自动配置的原理及@Conditional条件注解

    Spring Boot自动配置的原理及@Conditional条件注解

    这篇文章主要介绍了Spring Boot自动配置的原理及@Conditional条件注解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的朋友可以参考一下
    2022-07-07
  • java实现图片上插入文字并保存

    java实现图片上插入文字并保存

    这篇文章主要为大家详细介绍了java实现图片上插入文字并保存,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 深入分析JAVA Vector和Stack的具体用法

    深入分析JAVA Vector和Stack的具体用法

    这篇文章主要介绍了深入分析JAVA Vector和Stack的具体用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 详解Spring Data JPA动态条件查询的写法

    详解Spring Data JPA动态条件查询的写法

    本篇文章主要介绍了Spring Data JPA动态条件查询的写法 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • JAVA统计字符串中某个字符出现次数的方法实现

    JAVA统计字符串中某个字符出现次数的方法实现

    本文主要介绍了JAVA统计字符串中某个字符出现次数的方法实现,可以循环使用String的charAt(int index)函数,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Java开发基础日期类代码详解

    Java开发基础日期类代码详解

    这篇文章主要介绍了Java开发基础日期类的相关内容,代码通过日期工具类获取指定月份的星期与日期对应关系,以及获取指定月份的所有日期与星期集合等,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Java线程安全中的有序性浅析

    Java线程安全中的有序性浅析

    这篇文章主要介绍了Java线程安全中的有序性,在开发中,我们通常按照从上到下的顺序编写程序指令,并且希望cpu和编译器按照我们预先编写的顺序去执。但往往cpu和编译器为了提高性能、优化指令的执行顺序,会将我们编写好的程序指令进行重排序
    2023-02-02
  • Java 详细分析四个经典链表面试题

    Java 详细分析四个经典链表面试题

    兄弟们,编程,当我们学习完数据结构的时候,你就会有一种豁然开朗的感觉。算是真正的入了编程的门,所以打好数据结构的基础是特别特别重要的
    2022-03-03
  • Java8利用Stream实现列表去重的方法详解

    Java8利用Stream实现列表去重的方法详解

    这篇文章主要为大家介绍了Java利用Stream实现列表去重的几种方法详解,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2022-04-04
  • Java泛型机制与反射原理相关知识总结

    Java泛型机制与反射原理相关知识总结

    今天带大家学习的是关于Java进阶的相关知识,文章围绕着Java泛型机制与反射原理展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06

最新评论