SpringBoot容器化部署:Docker+Kubernetes实战教程
🎓博主介绍:Java、Python、js全栈开发 “多面手”,精通多种编程语言和技术,痴迷于人工智能领域。秉持着对技术的热爱与执着,持续探索创新,愿在此分享交流和学习,与大家共进步。
📖DeepSeek-行业融合之万象视界(附实战案例详解100+)
📖全栈开发环境搭建运行攻略:多语言一站式指南(环境搭建+运行+调试+发布+保姆级详解)
👉感兴趣的可以先收藏起来,希望帮助更多的人
SpringBoot容器化部署:Docker+Kubernetes实战教程
一、引言
在当今的软件开发领域,微服务架构和容器化技术正变得越来越流行。Spring Boot 作为一个简化 Spring 应用开发的框架,凭借其便捷性和高效性受到了广泛的关注。而 Docker 和 Kubernetes 则为应用的容器化部署和管理提供了强大的支持。本文将详细介绍如何将 Spring Boot 应用进行容器化,并使用 Docker 和 Kubernetes 进行部署和管理。
二、环境准备
2.1 安装 Docker
Docker 是一个用于开发、部署和运行应用程序的开源平台。以下是在不同操作系统上安装 Docker 的步骤:
2.1.1 Linux(以 Ubuntu 为例)
# 更新系统包
sudo apt-get update
# 安装必要的依赖
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 的软件源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu$(lsb_release -cs) stable"
# 更新包索引
sudo apt-get update
# 安装 Docker CE
sudo apt-get install docker-ce
# 验证 Docker 是否安装成功
sudo docker run hello-world
2.1.2 Windows
在 Windows 上安装 Docker 可以通过 Docker Desktop 进行,下载地址为:https://www.docker.com/products/docker-desktop。下载完成后,按照安装向导进行安装即可。
2.2 安装 Kubernetes
Kubernetes 是一个用于自动化部署、扩展和管理容器化应用的开源系统。可以使用 Minikube 在本地搭建一个单节点的 Kubernetes 集群。
2.2.1 安装 Minikube
# 下载 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# 移动到可执行目录
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 启动 Minikube
minikube start
2.2.2 安装 kubectl
# 下载 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# 验证 kubectl 的完整性
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256) kubectl" | sha256sum --check
# 安装 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 验证 kubectl 是否安装成功
kubectl version --client
三、Spring Boot 应用开发
3.1 创建 Spring Boot 项目
可以使用 Spring Initializr(https://start.spring.io/) 来快速创建一个 Spring Boot 项目。选择以下依赖:
- Spring Web
- Spring Boot DevTools
3.2 编写简单的控制器
在 src/main/java/com/example/demo 目录下创建一个 HelloController.java 文件,代码如下:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
3.3 测试应用
在 IDE 中运行 DemoApplication.java 类,然后在浏览器中访问 http://localhost:8080/hello,如果看到 Hello, Spring Boot!,则说明应用开发成功。
四、使用 Docker 容器化 Spring Boot 应用
4.1 创建 Dockerfile
在项目根目录下创建一个 Dockerfile 文件,内容如下:
# 使用基础镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 复制项目的 JAR 文件到容器中
COPY target/demo-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口
EXPOSE 8080
# 启动应用
CMD ["java", "-jar", "app.jar"]
4.2 构建 Docker 镜像
在项目根目录下执行以下命令来构建 Docker 镜像:
docker build -t spring-boot-demo:1.0 .
4.3 运行 Docker 容器
docker run -p 8080:8080 spring-boot-demo:1.0
在浏览器中访问 http://localhost:8080/hello,如果看到 Hello, Spring Boot!,则说明 Docker 容器运行成功。
五、使用 Kubernetes 部署 Spring Boot 应用
5.1 创建 Deployment
在项目根目录下创建一个 deployment.yaml 文件,内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-boot-demo-deployment
spec:
replicas: 3
selector:
matchLabels:
app: spring-boot-demo
template:
metadata:
labels:
app: spring-boot-demo
spec:
containers:
- name: spring-boot-demo-container
image: spring-boot-demo:1.0
ports:
- containerPort: 8080
执行以下命令来创建 Deployment:
kubectl apply -f deployment.yaml
5.2 创建 Service
在项目根目录下创建一个 service.yaml 文件,内容如下:
apiVersion: v1
kind: Service
metadata:
name: spring-boot-demo-service
spec:
selector:
app: spring-boot-demo
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
执行以下命令来创建 Service:
kubectl apply -f service.yaml
5.3 访问应用
minikube service spring-boot-demo-service
浏览器会自动打开一个页面,访问 /hello 路径,如果看到 Hello, Spring Boot!,则说明 Kubernetes 部署成功。
六、总结
通过本文的介绍,我们学习了如何将 Spring Boot 应用进行容器化,并使用 Docker 和 Kubernetes 进行部署和管理。容器化技术可以提高应用的部署效率和可移植性,而 Kubernetes 则可以实现应用的自动化管理和扩展。希望本文对你有所帮助。
更多推荐




所有评论(0)