开发者学堂课程干货总结——Spring Boot 2.5.x开发实战(十)

简介: Spring Boot 2.5.x开发实战课时10——Spring Boot2.5实战Docker容器 ,Spring Boot 2.5.x开发实战是学习Java Spring Cloud微服务架构的必经之路。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦

哈喽各位同学们大家好呀,小编今天为大家分享开发者学院中课程Spring Boot2.5实战Docker容器”干货总结哦,并且是Spring Boot 2.5.x开发实战的最后一篇~Spring Boot 2.5.x开发实战可Java中级工程师必备课程!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Spring Boot 2.5.x开发实战

课程地址:https://developer.aliyun.com/learning/course/71?spm=a2c6h.21254954.0.0.4e905907uoWZzr

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ

明日将为大家分享新课程“Dubbo 分布式服务治理实践”,敬请期待吧!


Spring Boot2.5实战Docker容器


(一)Spring Boot2.5.x部署方式 

由于Spring Boot内嵌了很多Web容器现在部署Spring Boot应用相对比较简单。这里指的Web应用可以用这个方法部署。如果要部署普通的应用,比如命令方式也可以doctor方式或者用其他的部署工具结合服务器或者远端的云端服务器进行自动化部署。 

image.png 

 

(二)Spring Boot实战Docker容器DockerHub 

image.png 

Docker作为一个容器工具,它实际是一个平台一个生态,它包括Docker的服务器端客户端以及仓库可视化管理界面 

给大家讲课的时候用的是windows10,两年前windows1支持Docker,现在基本上就可以了,因为要开虚拟化技术如果你用Linux环境或者Mac OS,Docker环境是比较容易安装 

image.png 

DockerHub本身是类似于一个镜像的仓库,只不过这个服务器基本上都在美国国内的话像阿里跟Docker签了合作协议,阿里云构建了一个Docker中国大陆的镜像服务,可以创建Docker的私有仓库。阿里云注册账号在自己的账号里面可以看到Docker的一个镜像。Docker应用程序的一个构建和发布标准化大规模集群的部署提供了非常便捷的操作方式 

 

image.png 

Docker本身也有自己的管理工具叫Docker swarm。当有了Docker专属的DockerHub地址之后,再想上传到镜像的时候,可以上传到阿里云的Docker仓库里面 

在上传到阿里云仓库之前要先构建镜像比如MySQL、MongoDBRedis或者Java的一些标准主机镜像以外,也可以构建自己的镜像 

 

(三)阿里云Docker镜像仓库 

1. 国内第一个提供Docker服务的云计算公司2. 2016年云栖大会宣布与Docker官方合作3. 提供Docker Images镜像加速4. 提供景象仓库5. 免费注册使用6. Docker Hub中国站与Docker Hub完全一致 

 

(四)Docker分布式集群架构 

  image.png 

Docker主要是方便开发和运维团队做大规模集群化部署 

 

(五)Docker容器常用命令 

1. 搜索镜像:sudo docker search java2. 拉取镜像:sudo docker pull java3. 运行镜像:docker run4. 获取帮助:docker help5. 构建镜像:docker build6. 提交镜像:docker commit7. 新建镜像:docker create8. 运行镜像:docker run9. 重启镜像:docker restart10.查询全部:docker images11.查看信息:docker info12.推送镜像:docker push 

 

 

DockerFile命令 

Docker构建的早期需要DockerFile,就是Docker构建了一个命令文件Docker基于这个文件构建镜像并且打包镜像。 

1. Docker镜像配置文件2. 脚本编写3. 脚本文件4. 一系列命令和参数构成的脚本,5. 这些命令应用于基础镜像6. 并最终创建一个新的镜像 

 

DockerFile重要指令 

1. FROM 指定基础镜像文件  

2. MAINTAINER authors_name 作者  

3. RUN 运行特殊命令,比如下载JDK  

4. SER命令用于设置运行容器的UID  

5. VOLUME 指定容器访问目录  

6. WORKDIR 运行目录  

7. ENV 环境变量,如ENV LANG en_US.UTF-8  

8. CMD 容器执行的命令 CMD "echo" "Hello docker!"  

9. ADD 复制文件到目标文件夹  

10.COPY 复制,类似ADD  

11.EXPOSE 暴露端口  

12.ENTRYPOINT 入口,命令,只有一个不能被Run覆盖 

 

(六)Spring Boot 2.5 Docker制作镜像 

环境需求  

•docker (1.6.0 or above) 

jdk 1.8  

•Maven 3.0+或者Gradle 2.3+ 

 

Spring Boot 2.4全新docker构建工具 

•Spring Boot 2.4 推出了自己的 docker 构建工具 

•一键构建Docker镜像,无需Dockerfile 

•之前工具spotify 、fabric8,配置插件使用,需要Dockerfile 

• jib-maven-plugin是Google18 年 7 月发布的Java 镜像工具(支持 

Maven 和 Gradle),也无需Dockerfile 

•整合在原有的 spring-boot-maven-plugin 中, 

•只需要配置对应目标仓库和主机信息即可完成镜像构建。 

•新命令:mvn spring-boot:build-image 

 

(七)演示 

Dockerfile制作镜像 

FROM java:8  

•VOLUME /tmp  

•ADD java-spring-boot-docker-0.1.0.jar app.jar  

•RUN bash -c 'touch /app.jar'  

•ENTRYPOINT ["java","Djava.security.egd=file:/dev/./urandom","jar","/app.jar"] 

 

Build Docker Image with Maven 

<plugin>  

• <groupId>com.spotify</groupId>  

• <artifactId>docker-maven-plugin</artifactId>  

• <version>0.2.3</version>  

• <configuration>  

• <imageName>${docker.image.prefix}/${project.artifactId}</imageName>  

• <dockerDirectory>src/main/docker</dockerDirectory>  

• <resources> • <resource> • <targetPath>/</targetPath> 

• <directory>${project.build.directory}</directory>  

• <include>${project.build.finalName}.jar</include>  

• </resource>  

• </resources>  

• </configuration>  

• </plugin> 

 

 

Maven打包 

image.png 

image.png 

 

(八高级面试题 

1. Docker是什么?解决什么问题 

2. Docker的优势 

3. Swarm工具和Docker的关系  

4. K8s优势是什么?  

5. 如何安装Docker容器 

6. 如何制作、推送Docker镜像 

7. 如何搜索、拉取、启动Docker镜像 

8. Docker如何容器部署Spring Boot 2.5.x和微服务 

 

相关文章
|
2天前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
39 1
|
2天前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
29 3
|
2天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
14 1
|
2天前
|
安全 Java 测试技术
Spring Boot集成支付宝支付:概念与实战
【4月更文挑战第29天】在电子商务和在线业务应用中,集成有效且安全的支付解决方案是至关重要的。支付宝作为中国领先的支付服务提供商,其支付功能的集成可以显著提升用户体验。本篇博客将详细介绍如何在Spring Boot应用中集成支付宝支付功能,并提供一个实战示例。
37 2
|
2天前
|
Java 关系型数据库 数据库
Spring Boot多数据源及事务管理:概念与实战
【4月更文挑战第29天】在复杂的企业级应用中,经常需要访问和管理多个数据源。Spring Boot通过灵活的配置和强大的框架支持,可以轻松实现多数据源的整合及事务管理。本篇博客将探讨如何在Spring Boot中配置多数据源,并详细介绍事务管理的策略和实践。
40 3
|
2天前
|
Java 开发者 Spring
springboot DDD的概念以及实战
【5月更文挑战第15天】领域驱动设计(Domain-Driven Design,简称DDD)是一种软件设计方法论,它强调基于业务领域的复杂性来构建软件
9 2
|
2天前
|
开发框架 监控 Java
深入探索Spring Boot的监控、管理和测试功能及实战应用
【5月更文挑战第14天】Spring Boot是一个快速开发框架,提供了一系列的功能模块,包括监控、管理和测试等。本文将深入探讨Spring Boot中监控、管理和测试功能的原理与应用,并提供实际应用场景的示例。
15 2
|
2天前
|
Java Spring 容器
深入理解Spring Boot启动流程及其实战应用
【5月更文挑战第9天】本文详细解析了Spring Boot启动流程的概念和关键步骤,并结合实战示例,展示了如何在实际开发中运用这些知识。
18 2
|
2天前
|
JavaScript Java 开发者
Spring Boot中的@Lazy注解:概念及实战应用
【4月更文挑战第7天】在Spring Framework中,@Lazy注解是一个非常有用的特性,它允许开发者控制Spring容器的bean初始化时机。本文将详细介绍@Lazy注解的概念,并通过一个实际的例子展示如何在Spring Boot应用中使用它。
21 2
|
2天前
|
Java 调度 Maven
Springboot实战篇--Springboot框架通过@Scheduled实现定时任务
Spring Boot的Scheduled定时任务无需额外Maven依赖,通过`@EnableScheduling`开启。任务调度有两种方式:fixedRate和fixedDelay,前者任务结束后立即按设定间隔执行,后者在任务完成后等待设定时间再执行。更灵活的是cron表达式,例如`0 0 3 * * ?`表示每天3点执行。实现定时任务时,需注意默认单线程执行可能导致的任务交错,可通过自定义线程池解决。