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、发布运行

目录
相关文章
|
6月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
安全 Java Apache
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 身份和权限认证
本文介绍了 Apache Shiro 的身份认证与权限认证机制。在身份认证部分,分析了 Shiro 的认证流程,包括应用程序调用 `Subject.login(token)` 方法、SecurityManager 接管认证以及通过 Realm 进行具体的安全验证。权限认证部分阐述了权限(permission)、角色(role)和用户(user)三者的关系,其中用户可拥有多个角色,角色则对应不同的权限组合,例如普通用户仅能查看或添加信息,而管理员可执行所有操作。
607 0
|
安全 Java 数据安全/隐私保护
微服务——SpringBoot使用归纳——Spring Boot中集成 Shiro——Shiro 三大核心组件
本课程介绍如何在Spring Boot中集成Shiro框架,主要讲解Shiro的认证与授权功能。Shiro是一个简单易用的Java安全框架,用于认证、授权、加密和会话管理等。其核心组件包括Subject(认证主体)、SecurityManager(安全管理员)和Realm(域)。Subject负责身份认证,包含Principals(身份)和Credentials(凭证);SecurityManager是架构核心,协调内部组件运作;Realm则是连接Shiro与应用数据的桥梁,用于访问用户账户及权限信息。通过学习,您将掌握Shiro的基本原理及其在项目中的应用。
459 0
|
NoSQL Java 关系型数据库
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
本文介绍在 Spring Boot 中集成 Redis 的方法。Redis 是一种支持多种数据结构的非关系型数据库(NoSQL),具备高并发、高性能和灵活扩展的特点,适用于缓存、实时数据分析等场景。其数据以键值对形式存储,支持字符串、哈希、列表、集合等类型。通过将 Redis 与 Mysql 集群结合使用,可实现数据同步,提升系统稳定性。例如,在网站架构中优先从 Redis 获取数据,故障时回退至 Mysql,确保服务不中断。
440 0
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
|
9月前
|
开发工具 Docker Windows
OpenWrt 通过Docker单独打包passwall ipk
OpenWrt 通过Docker单独打包passwall ipk
|
Java 数据安全/隐私保护 微服务
微服务——SpringBoot使用归纳——Spring Boot中使用监听器——Spring Boot中自定义事件监听
本文介绍了在Spring Boot中实现自定义事件监听的完整流程。首先通过继承`ApplicationEvent`创建自定义事件,例如包含用户数据的`MyEvent`。接着,实现`ApplicationListener`接口构建监听器,用于捕获并处理事件。最后,在服务层通过`ApplicationContext`发布事件,触发监听器执行相应逻辑。文章结合微服务场景,展示了如何在微服务A处理完逻辑后通知微服务B,具有很强的实战意义。
665 0
|
缓存 Java 数据库
微服务——SpringBoot使用归纳——Spring Boot中使用监听器——监听器介绍和使用
本文介绍了在Spring Boot中使用监听器的方法。首先讲解了Web监听器的概念,即通过监听特定事件(如ServletContext、HttpSession和ServletRequest的创建与销毁)实现监控和处理逻辑。接着详细说明了三种实际应用场景:1) 监听Servlet上下文对象以初始化缓存数据;2) 监听HTTP会话Session对象统计在线用户数;3) 监听客户端请求的Servlet Request对象获取访问信息。每种场景均配有代码示例,帮助开发者理解并应用监听器功能。
676 0
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——常见问题总结
本文总结了Spring Boot中使用事务的常见问题,虽然通过`@Transactional`注解可以轻松实现事务管理,但在实际项目中仍有许多潜在坑点。文章详细分析了三个典型问题:1) 异常未被捕获导致事务未回滚,需明确指定`rollbackFor`属性;2) 异常被try-catch“吃掉”,应避免在事务方法中直接处理异常;3) 事务范围与锁范围不一致引发并发问题,建议调整锁策略以覆盖事务范围。这些问题看似简单,但一旦发生,排查难度较大,因此开发时需格外留意。最后,文章提供了课程源代码下载地址,供读者实践参考。
349 0
|
Java 关系型数据库 数据库
微服务——SpringBoot使用归纳——Spring Boot事务配置管理——Spring Boot 事务配置
本文介绍了 Spring Boot 中的事务配置与使用方法。首先需要导入 MySQL 依赖,Spring Boot 会自动注入 `DataSourceTransactionManager`,无需额外配置即可通过 `@Transactional` 注解实现事务管理。接着通过创建一个用户插入功能的示例,展示了如何在 Service 层手动抛出异常以测试事务回滚机制。测试结果表明,数据库中未新增记录,证明事务已成功回滚。此过程简单高效,适合日常开发需求。
1658 0
|
11月前
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
926 77