Java Spring Boot 2.0实战Docker容器与架构原理,视频与课件,基于Linux环境

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker是最流行的开源容器引擎,Go语言开发,在互联网大规模集群、云计算、微服务等架构中广泛使用。本次课程一起学习Docker容器架构原理、如何基于Linux系统实战实战Docker容器,打包、发布、运行 Java Spring Boot 2.0应用。
Java Spring Boot 2.0实战Docker容器Linux与架构原理
内容摘要:Docker是最流行的开源容器引擎,Go语言开发,在互联网大规模集群、云计算、微服务等架构中广泛使用。本次课程一起学习Docker容器架构原理、如何基于Linux系统实战实战Docker容器,打包、发布、运行 Java Spring Boot 2.0应用。
Docker分布式架构,Docker是一套生态工具平台,包括客户端、服务端、仓库、集群工具等。
04fd0af036f68511d215c9e5daf6170adbe9c66f

如果你已经熟悉Docker的基本使用,可以直接从第7小节阅读,直接看Spring boot实战Docker的部分内容。

Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。
Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并尝试使用基于容器的应用的理想之选。
Docker CE 有两个更新渠道,即 stable 和 edge:
Stable 每个季度提供可靠更新;
Edge 每个月提供新功能更新。一般我们选择stable可以了,本文实战选择也是。
在2016年10月13日,杭州·云栖大会上,Docker与阿里云宣布达成战略合作,Docker的中国镜像仓库由阿里巴巴提供,国内开发者可以免费使用。
今天我们的演示也使用阿里云Docker仓库。我们选择的是Linux Ubuntu 16.04系统。
1、安装首先安装传输加密组件,然后来下载docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
image

2: 安装阿里云docker 安全协议GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

3: 仓库写入软件源信息,选择stable版本
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
image

4: 更新资源列表,安装新版本Docker-CE,社区版本。
sudo apt-get -y update
sudo apt-get -y install docker-ce
image

5、检查Docker版本,是否成功安装
输入docker version命令,可以查看安装的Docker版本信息。
image

6、运行Docker Hello World
最简单的例子就是 Hello world,docker会从服务器拉去hello world镜像,并且在本地运行。
sudo docker run hello-world
image
Docker安装成功,并且可以执行最简单的镜像,入门例子。下面开始安装特殊的镜像,Mongodb作为例子。

7、Docker制作java Spring Boot 镜像

     新建Java Spring Boot项目,这里需要解除Maven自动构建Docker镜像,使用辅助插件。在项目里配置POM。

    推荐使用Linux 或者Mac OS可以安装docker,因为Maven构建Docker镜像需要Docker服务器支持。

 <!-- tag::plugin[] -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.9</version>
                <configuration>
                    <repository>${docker.image.prefix}/${project.artifactId}</repository>
                </configuration>
            </plugin>

插件的XML配置

<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>

创建重要的Dockerfile文件,用于打包镜像。基本是程序的主要运行参数信息。以及我们的java Spring Boot的Jar包。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","hello.Application"]
Java Spring Boot 集成Docker插件的项目结构:

73f962a930c64bf30bf89466387a3369c05b1b7e

执行命令mvn install dockerfile:build。

构建并生成Docker镜像文件,可以选择上传到DockerHub服务器。

8、Docker搜索Spring Boot镜像

     我们也可以选择去Docker Hub拉去通用的镜像,比如MySQL、MongoDB、Redis、MQ等,

 使用Docker Search 关键字 即可,然后可以选择拉去需要的镜像,节约时间。

9、Docker拉去 Spring Boot 镜像

    在命令中输入sudo docker pull  springio/gs-spring-boot-docker 等待下载。

d08e9d62437c28fb1a9a592989a8943463820c01

10.Docker运行Spring Boot应用

   下载完毕以后,我们就可以技术来使用Docker运行我们的Spring Boot应用。使用命令:

sudo docker run -p 8080:8080 -t springio/gs-spring-boot-docker

cdc321b5a83aaca0c51088fdde48821b927818f5

如果没有错误,应该正常启动,端口是8080,我们这里访问http://localhost:8080/hello 可以看到简单的字符串 Hello Docker。

基本就完成了,大量的运维、部署工作可以通过Docker来完成,尤其是大规模集群,几百、上前台服务的情况。Docker简化的配置、统一部署的工作。

使用起来十分方便,除了我们自己特殊的应用打包,绝大部分的数据库、中间件等都有官方的Docker镜像。

参考:

http://maven.apache.org/install.html 

https://github.com/spring-guides/gs-spring-boot-docker 

https://docs.docker.com/ 

第17课:Spring Boot 2.0实战Docker容器与架构原理》资料:

视频: https://yq.aliyun.com/live/880

PPT:https://yq.aliyun.com/live/880

阿里巴巴Java群超过3000人
直播地址:Java技术进阶群
进群方式:钉钉扫码入群
image
阿里巴巴MongoDB群
image

相关文章
|
1月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
115 7
|
1月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
250 3
|
17天前
|
人工智能 监控 安全
如何快速上手【Spring AOP】?核心应用实战(上篇)
哈喽大家好吖~欢迎来到Spring AOP系列教程的上篇 - 应用篇。在本篇,我们将专注于Spring AOP的实际应用,通过具体的代码示例和场景分析,帮助大家掌握AOP的使用方法和技巧。而在后续的下篇中,我们将深入探讨Spring AOP的实现原理和底层机制。 AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的核心特性之一,它能够帮助我们解决横切关注点(如日志记录、性能统计、安全控制、事务管理等)的问题,提高代码的模块化程度和复用性。
|
3月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
212 18
|
2月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
198 0
|
2月前
|
缓存 Java 数据库
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
128 2
|
3月前
|
算法 架构师 Java
Java 开发岗及 java 架构师百度校招历年经典面试题汇总
以下是百度校招Java岗位面试题精选摘要(150字): Java开发岗重点关注集合类、并发和系统设计。HashMap线程安全可通过Collections.synchronizedMap()或ConcurrentHashMap实现,后者采用分段锁提升并发性能。负载均衡算法包括轮询、加权轮询和最少连接数,一致性哈希可均匀分布请求。Redis持久化有RDB(快照恢复快)和AOF(日志更安全)两种方式。架构师岗涉及JMM内存模型、happens-before原则和无锁数据结构(基于CAS)。
82 5
|
2月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
110 0
|
9月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。