Docker 部署 Spring Boot 项目整合 Redis 镜像做访问计数 Demo

第一章 - 引言

在现代应用开发中,容器化技术已经成为一种流行的解决方案。Docker作为最受欢迎的容器平台之一,为开发人员提供了一种简单、快速和可移植的方式来构建、部署和管理应用程序。本文将介绍如何使用Docker部署一个Spring Boot项目,并结合Redis镜像实现访问计数的功能。

Image

第一节 - 准备工作

在开始之前,我们需要准备以下工作:

  1. 安装Docker:在你的开发环境中安装Docker,确保可以正常运行Docker命令。

  1. 编写Spring Boot项目:准备一个简单的Spring Boot项目,用于实现访问计数的功能。可以使用Maven或Gradle构建工具来创建项目。

  1. 安装Redis客户端:在Spring Boot项目中使用Redis,我们需要安装Redis客户端库。可以使用Jedis、Lettuce等客户端库来连接和操作Redis。

第二节 - 编写Spring Boot项目

步骤一:添加依赖

在Spring Boot项目的pom.xml(如果使用Maven)或build.gradle(如果使用Gradle)文件中,添加Redis和Spring Boot的相关依赖。

Maven的pom.xml示例:

<dependencies>

 <!-- Spring Boot Starter -->

 <dependency>

•    <groupId>org.springframework.boot</groupId>

•    <artifactId>spring-boot-starter-web</artifactId>

 </dependency>



 <!-- Redis Client -->

 <dependency>

•    <groupId>redis.clients</groupId>

•    <artifactId>jedis</artifactId>

•    <version>3.7.0</version>

 </dependency>

</dependencies>

Gradle的build.gradle示例:

dependencies {

 // Spring Boot Starter

 implementation 'org.springframework.boot:spring-boot-starter-web'



 // Redis Client

 implementation 'redis.clients:jedis:3.7.0'

}

在上面的示例中,我们添加了Spring Boot Web Starter和Jedis依赖,用于构建Web应用和连接Redis。

步骤二:编写访问计数功能

在Spring Boot项目中,我们可以创建一个Controller类,并编写一个简单的接口来实现访问计数的功能。

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

import redis.clients.jedis.Jedis;



@RestController

public class CounterController {



 private final Jedis jedis = new Jedis("redis", 6379); // Redis服务器的地址和端口



 @GetMapping("/")

 public String home() {

•    // 增加访问计数

•    jedis.incr("counter");



•    // 获取访问计数

•    String counter = jedis.get("counter");



•    return "访问次数:" + counter;

}

}

在上面的示例中,我们创建了一个名为CounterController的RestController类。在home()方法中,我们使用Jedis客户端连接到Redis服务器,并使用incr()方法增加访问计数。然后,我们使用get()方法获取访问计数,并将其返回给客户端。

步骤三:运行Spring Boot项目

通过运行Spring Boot项目,我们可以在本地验证访问计数功能是否正常工作。

在命令行中,导航到项目的根目录,并运行以下命令:

$ ./mvnw spring-boot:run

或者,如果你使用Gradle构建工具:

$ ./gradlew bootRun

Spring Boot将启动应用程序,并监听默认的8080端口。

现在,我们可以在浏览器中访问http://localhost:8080,并多次刷新页面,观察访问计数是否增加。

第三节 - 创建Docker镜像

步骤一:编写Dockerfile

在项目的根目录下创建一个名为Dockerfile的文件,并添加以下内容:

FROM adoptopenjdk:11-jre-hotspot



WORKDIR /app



COPY target/demo.jar /app



CMD ["java", "-jar", "demo.jar"]

在上面的Dockerfile中,我们使用AdoptOpenJDK 11镜像作为基础镜像。然后,将项目构建生成的可执行Jar文件(假设为demo.jar)复制到容器的/app目录下。最后,使用CMD指令来定义容器启动时执行的命令。

步骤二:构建Docker镜像

在项目的根目录下打开终端,运行以下命令来构建Docker镜像:

$ docker build -t springboot-redis-demo .

该命令将使用Dockerfile中的指令构建一个名为springboot-redis-demo的Docker镜像。

第四节 - 使用Docker Compose 部署应用

步骤一:创建Docker Compose文件

在项目的根目录下创建一个名为docker-compose.yml的文件,并添加以下内容:

version: '3'

services:

app:

image: springboot-redis-demo

ports:

  \- 8080:8080

depends_on:

  \- redis

redis:

image: redis:latest

ports:

  \- 6379:6379

在上面的示例中,我们定义了两个服务:app和redis。app服务使用我们之前构建的Spring Boot应用镜像,并将容器的8080端口映射到主机的8080端口。redis服务使用最新的Redis镜像,并将容器的6379端口映射到主机的6379端口。

步骤二:启动应用

在终端中,导航到项目的根目录,并运行以下命令来启动应用:

$ docker-compose up

Docker Compose将自动构建和启动应用的容器。你可以在终端中看到容器的日志输出,并且应用将在本地的8080端口上运行。

现在,你可以在浏览器中访问http://localhost:8080,并多次刷新页面,观察访问计数是否增加。同时,你可以通过Redis客户端工具连接到容器中的Redis实例,检查访问计数的值是否在增加。

第五节 - 结语

通过本文的介绍和示例,你学习了如何使用Docker部署Spring Boot项目并整合Redis镜像来实现访问计数的功能。首先,我们编写了一个简单的Spring Boot项目,并使用Redis客户端库连接和操作Redis。然后,我们创建了Docker镜像,并使用Docker Compose将Spring Boot应用和Redis容器编排在一起,实现了整个应用的部署。

使用Docker和Docker Compose部署应用可以带来许多好处,如隔离性、可移植性和易于扩展。通过将应用与依赖项打包在一起,我们可以确保应用在不同的环境中具有相同的行为,并且能够轻松地进行部署和管理。

希望通过本文的指导,你能够更好地理解和应用Docker和Docker Compose,以便在实际项目中更高效地部署和管理应用程序。愿你在使用Docker和容器化技术的旅程中取得更大的成功!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值