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

 

相关文章
|
1月前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
52 0
|
2月前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
49 0
|
14天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
79 13
|
22天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
43 2
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
45 2
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
81 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
284 6
|
2月前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
154 2
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
42 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。