游乐游手机版
首页/电脑教程/文章详情

Spring Boot入门:Docker容器化部署与监控配置运维必备指南

时间:2026-08-06 06:49
SpringBoot应用生产环境部署与监控分为四步:构建Docker镜像实现环境一致性,启动MySQL容器提供持久化存储,通过Actuator暴露Prometheus监控指标,部署Prometheus与Grafana搭建可视化看板,形成完整可观测性闭环。

将Spring Boot应用快速部署到生产环境,并实时掌握其运行状态,实际上只需四步:容器化打包、独立运行MySQL、接入Prometheus指标采集、启动Grafana可视化看板。将这四步串联起来,就构成了一个完整的监控闭环。下面直接上干货,按顺序逐步操作。

Spring Boot入门指南:Docker容器化部署与监控配置【运维必备】

构建可运行的Spring Boot Docker镜像

在项目根目录下,先用Maven进行打包,生成jar包——确保target目录下存在类似springboot-app-0.0.1-SNAPSHOT.jar的文件。然后创建Dockerfile,内容仅需以下几行:

FROM openjdk:17-jre-slim
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

操作非常简便,直接把文件拖入即可。但需要注意一个小细节:COPY指令中的target/路径不可遗漏,否则构建时会提示“no such file”错误。接着执行构建命令:

docker build -t springboot-app .

命令末尾的【.】一定不能省略——它表示构建上下文是当前目录,少了它COPY指令会执行失败。

启动MySQL容器并配置连接

首先启动一个MySQL容器,指定root密码、端口映射以及数据卷持久化:

docker run -d --name mysql8 -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -v /opt/mysql-data:/var/lib/mysql mysql:8.0

温馨提示:宿主机上的/opt/mysql-data目录需要提前创建,并确保拥有写权限,否则容器启动后因挂载卷失败会直接退出。

然后修改Spring Boot项目中的application.properties,将数据库URL指向容器服务名:

spring.datasource.url=jdbc:mysql://mysql8:3306/mydb?useUnicode=true&characterEncoding=utf-8

这里必须使用mysql8(即容器名),不能使用localhost127.0.0.1——因为Docker默认的bridge网络中,容器之间通信依赖服务名解析,而非IP地址。

启用Actuator暴露Prometheus指标

有两种方式可供选择。第一种方式是在pom.xml中添加两个依赖:


    org.springframework.boot
    spring-boot-starter-actuator


    io.micrometer
    micrometer-registry-prometheus

第二种方式是在application.properties中直接启用端点:

management.endpoints.web.exposure.include=health,info,prometheus,metrics
management.endpoint.prometheus.show-details=true

启动应用后,访问https://localhost:8080/actuator/prometheus,如果看到大量以# TYPE开头的文本,说明指标已成功暴露。

部署Prometheus与Grafana并完成对接

第一步:创建prometheus.yml配置文件,定义抓取目标:

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'springboot'
    static_configs:
      - targets: ['host.docker.internal:8080']

第二步:启动Prometheus容器,并挂载配置文件:

docker run -d --name prometheus -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

第三步:启动Grafana容器:

docker run -d --name grafana -p 3000:3000 grafana/grafana-enterprise

第四步:在浏览器中访问https://localhost:3000,使用默认账号admin/admin登录,并立即修改密码。

第五步:在Grafana中添加Prometheus数据源,URL填写https://host.docker.internal:9090,点击【Save & Test】确认连通性。

第六步:导入Spring Boot监控模板,模板ID输入10280,加载后即可看到JVM内存、HTTP请求延迟、线程数等核心指标。

来源:https://www.php.cn/faq/2941442.html
上一篇Spring Boot入门选择Maven还是Gradle构建工具更省事的实用方法 下一篇Spring Boot入门:Starter依赖管理与自定义组件封装架构设计
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
鲁大师官网中文版下载 正版免费安全入口
电脑教程 · 2026-08-06

鲁大师官网中文版下载 正版免费安全入口

下载鲁大师中文版务必通过官方域名www ludashi com,认准蓝色Logo与红色“下载鲁大师”按钮,避免第三方捆绑。安装时取消非核心组件,并校验SHA256值确保文件未被篡改,从而保障系统安全与纯净。

Spring Boot入门:Starter依赖管理与自定义组件封装架构设计
电脑教程 · 2026-08-06

Spring Boot入门:Starter依赖管理与自定义组件封装架构设计

SpringBoot启动器遵循启动器与自动配置模块分离,通过自动配置导入文件注册条件化配置类,绑定配置属性注解实现外部配置。需创建命名规范的模块,编写属性类和条件化自动配置类,确保依赖传递与自动装配生效。

Spring Boot入门选择Maven还是Gradle构建工具更省事的实用方法
电脑教程 · 2026-08-06

Spring Boot入门选择Maven还是Gradle构建工具更省事的实用方法

在SpringBoot项目构建工具选择上,新手首次运行SpringBoot,推荐新手优先选择Maven,更省心:IDE内置模板开箱即用,文档与社区支持完善,错误提示友好。而Gradle则适合需动态构建逻辑、已有Gradle基础设施或含Android Kotlin模块的场景。因此,Maven是新手首选。

Spring Boot多环境配置,不改代码直接切换
电脑教程 · 2026-08-06

Spring Boot多环境配置,不改代码直接切换

SpringBoot通过准备多环境配置文件,支持利用命令行参数、集成开发环境设置、Maven参数或系统环境变量动态激活,无需修改代码即可在开发、测试、生产环境之间切换,实现零配置快速部署,提高部署效率。