开发者学堂课程干货总结——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

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java

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


Spring Boot2.5实战Docker容器


  1. 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和微服务 

 

相关文章
|
9天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
527 8
|
20天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
20天前
|
Java 数据库连接 Maven
Spring基础1——Spring(配置开发版),IOC和DI
spring介绍、入门案例、控制反转IOC、IOC容器、Bean、依赖注入DI
Spring基础1——Spring(配置开发版),IOC和DI
|
28天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
58 2
|
29天前
|
NoSQL 前端开发 Java
使用 Spring Boot + Neo4j 实现知识图谱功能开发
在数据驱动的时代,知识图谱作为一种强大的信息组织方式,正逐渐在各个领域展现出其独特的价值。本文将围绕使用Spring Boot结合Neo4j图数据库来实现知识图谱功能开发的技术细节进行分享,帮助读者理解并掌握这一技术栈在实际项目中的应用。
100 4
|
1月前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
109 6
|
1月前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
86 5
|
2月前
|
Java Spring 人工智能
AI 时代浪潮下,Spring 框架异步编程点亮高效开发之路,你还在等什么?
【8月更文挑战第31天】在快节奏的软件开发中,Spring框架通过@Async注解和异步执行器提供了强大的异步编程工具,提升应用性能与用户体验。异步编程如同魔法,使任务在后台执行而不阻塞主线程,保持界面流畅。只需添加@Async注解即可实现方法的异步执行,或通过配置异步执行器来管理线程池,提高系统吞吐量和资源利用率。尽管存在线程安全等问题,但异步编程能显著增强应用的响应性和效率。
32 0
|
2月前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
49 0
|
2月前
|
Java Spring API
Spring框架与GraphQL的史诗级碰撞:颠覆传统,重塑API开发的未来传奇!
【8月更文挑战第31天】《Spring框架与GraphQL:构建现代API》介绍了如何结合Spring框架与GraphQL构建高效、灵活的API。首先通过引入`spring-boot-starter-data-graphql`等依赖支持GraphQL,然后定义查询和类型,利用`@GraphQLQuery`等注解实现具体功能。Spring的依赖注入和事务管理进一步增强了GraphQL服务的能力。示例展示了从查询到突变的具体实现,证明了Spring与GraphQL结合的强大潜力,适合现代API设计与开发。
59 0
下一篇
无影云桌面