Docker学习重点(9)~SpringBoot微服务打包成Docker镜像

简介: Docker学习重点(9)~SpringBoot微服务打包成Docker镜像

一、SpringBoot微服务打包成Docker镜像

1、构建springboot项目

  • 编译器内测试一下项目是否可以正常启动

2、打包应用

  • 通过cmd执行java -jar命令,测试打包的jar包能否正常执行
  • 有了jar包,就需要构建成dockerfile,直接创建一个命名为Dockerfile的文件,书写命令
  • 也可以在idea工具安装插件Docker(用得不多)

3、编写dockerfile

FROM java:8
COPY *.jar /app.jar   # 把当前所有的jar包都拷贝到最后生成的应用app项目目录下
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

4、构建镜像

[root@iZwz9535z41cmgcpkm7i81Z idea]# pwd
/home/idea
[root@iZwz9535z41cmgcpkm7i81Z idea]# ls
[root@iZwz9535z41cmgcpkm7i81Z idea]# ls
Dockerfile  testdocker-1.0.0.jar
[root@iZwz9535z41cmgcpkm7i81Z idea]# docker build -t shan666 .
[root@iZwz9535z41cmgcpkm7i81Z idea]# docker images
REPOSITORY   TAG                IMAGE ID       CREATED         SIZE
shan666      latest             3de56aa20b0a   6 seconds ago   660MB
nginx        latest             605c77e624dd   3 months ago    141MB
tomcat       9.0                b8e65a4d736d   4 months ago    680MB
centos       latest             5d0da3dc9764   7 months ago    231MB
redis        5.0.9-alpine3.11   3661c84ee9d0   2 years ago     29.8MB
java         8                  d23bdf5b1b1b   5 years ago     643MB
[root@iZwz9535z41cmgcpkm7i81Z idea]# docker run -d -P --name shan-springboot-web shan666
84d2498a5eec5bcd3f60c915f8cf5d5fa5b8e5dfab1c179c30b3efc4ec68052e
[root@iZwz9535z41cmgcpkm7i81Z idea]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                     NAMES
84d2498a5eec   shan666   "java -jar /app.jar …"   5 seconds ago   Up 3 seconds   0.0.0.0:49160->8080/tcp   shan-springboot-web
[root@iZwz9535z41cmgcpkm7i81Z idea]# curl localhost:49160/
{"timestamp":"2022-04-28T03:16:51.901+00:00","status":404,"error":"Not Found","message":"","path":"/"}[root@iZwz9535z41cmgcpkm7i81Z idea]# curl localhost:49160/hello
hello,shan[root@iZwz9535z41cmgcpkm7i81Z idea]#
  • 以后,我们使用了Docker 之后,给别人交付的就是一个镜像即可!

5、发布运行

目录
相关文章
|
9天前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
49 1
|
2月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
60 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
2月前
|
缓存 前端开发 JavaScript
前后端分离 SpringBoot+Vue商城买卖系统通杀版本。大家可以参考学习一下
这篇文章介绍了一个使用SpringBoot+Vue开发的前后端分离商城系统,包括技术架构、开发环境、实现的功能以及项目截图,并展示了普通用户和商家端的功能界面。
前后端分离 SpringBoot+Vue商城买卖系统通杀版本。大家可以参考学习一下
|
28天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
58 2
|
2月前
|
Java Maven
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
这篇文章详细介绍了构建SpringBoot项目的过程,包括新建工程、选择环境配置、添加依赖、项目结构说明,并演示了如何编写一个简单的Controller控制器实现输出功能,最后讲解了如何使用Maven将项目打包成可执行的JAR包,并提供了运行JAR包的命令和测试效果。
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
|
3月前
|
安全 Java 数据库
三更草堂 Spring Security学习总结(思路整理)
Spring Security学习总结(思路整理)
|
3月前
|
Java Nacos Docker
使用docker compose 编排微服务发布
使用docker compose 编排微服务发布
45 3
|
2月前
|
设计模式 Java 程序员
学习 Spring 源码的意义是什么呢?
研究Spring源码能深化框架理解,提升代码分析与设计能力,助您掌握设计模式及最佳实践,增强解决问题的效率,促进职业生涯发展,并激发技术热情。选择稳定版本,从核心模块开始,结合实际项目并参与社区,让学习之旅既充实又具乐趣。
|
2月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
68 0
|
3月前
|
Java 持续交付 Maven
Spring Boot程序的打包与运行:构建高效部署流程
构建高效的Spring Boot部署流程对于保障应用的快速、稳定上线至关重要。通过采用上述策略,您可以确保部署过程的自动化、可靠性和高效性,从而将专注点放在开发上面。无论是通过Maven的生命周期命令进行打包,还是通过容器技术对部署过程进行优化,选择正确的工具与实践是成功实现这一目标的关键。
111 2
下一篇
无影云桌面