新闻详情

新闻详情

首页 / 资讯中心 / 详情

Docker Compose企业实战系列(二):SpringBoot\+MySQL\+Redis 后端项目完整部署

发布时间:2026/10/1 8:44:18来源:尧图网络
Docker Compose企业实战系列(二):SpringBoot\+MySQL\+Redis 后端项目完整部署
Docker Compose企业实战系列二SpringBootMySQLRedis 后端项目完整部署前言上一篇我们用 Compose 一键搭建了 LNMP 网站环境相信大家已经体会到了Compose 多服务编排的真香之处。日常开发和上线最主流、最高频的架构是什么毫无疑问SpringBoot MySQL Redis。传统部署方式非常麻烦服务器装JDK、装MySQL、装Redis、配置环境、开机自启、处理端口冲突、手动启动jar。本篇直接给大家一套企业通用、开箱即用的后端全家桶 Compose 模板一键启动数据库 缓存 后端项目全程环境隔离、数据持久化、自动重启适配开发测试/生产小集群。一、整体架构说明本次实战包含三大核心服务完全模拟真实后端业务环境MySQL 8.0业务数据持久化挂载数据目录删容器不丢数据Redis 7.0缓存、热点数据、会话存储开启持久化SpringBoot 后端服务自定义构建镜像依赖数据库缓存启动所有服务加入同一自定义网桥服务名直接通信无需写IP。二、统一项目目录结构标准化目录后续所有后端项目都可以套用springboot-docker/ ├── .env # 统一环境变量 ├── docker-compose.yml # 编排主文件 ├── app/ │ ├── Dockerfile # 后端镜像构建文件 │ └── app.jar # 你的SpringBoot打包jar ├── mysql/ │ └── data/ # 数据库数据挂载 └── redis/ └── data/ # Redis持久化数据三、编写环境变量 .env统一管理所有账号密码、版本、端口避免硬编码方便换环境# MySQL MYSQL_ROOT_PASSWORDroot123456 MYSQL_DATABASEspring_db MYSQL_USERappuser MYSQL_PASSWORDapp123456 # Redis REDIS_PASSWORDredis123456 # 镜像版本 MYSQL_VERSION8.0 REDIS_VERSION7.0-alpine四、SpringBoot 通用 Dockerfile在app/目录创建Dockerfile这是企业通用轻量模板# 基于轻量JDK17镜像可按需改为11/8 FROM openjdk:17-jdk-slim # 作者信息 MAINTAINER Compose-Practice # 设置工作目录 WORKDIR /app # 复制jar包到容器内 COPY app.jar app.jar # 暴露项目端口 EXPOSE 8080 # 启动命令 ENTRYPOINT [java,-jar,app.jar]小贴士如果你的项目是 JDK8直接替换为openjdk:8-jdk-alpine。五、核心 docker-compose.yml 完整配置根目录创建编排文件零修改可直接运行version:3.8services:# MySQL数据库mysql:image:mysql:${MYSQL_VERSION}ports:-3306:3306volumes:-./mysql/data:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD:${MYSQL_ROOT_PASSWORD}MYSQL_DATABASE:${MYSQL_DATABASE}MYSQL_USER:${MYSQL_USER}MYSQL_PASSWORD:${MYSQL_PASSWORD}restart:alwaysnetworks:-backend-net# Redis缓存redis:image:redis:${REDIS_VERSION}ports:-6379:6379volumes:-./redis/data:/datacommand:redis-server--requirepass ${REDIS_PASSWORD}--appendonly yesrestart:alwaysnetworks:-backend-net# SpringBoot后端服务app:build:./appports:-8080:8080depends_on:-mysql-redisrestart:alwaysnetworks:-backend-net# 自定义统一网络networks:backend-net:driver:bridge六、SpringBoot 配置文件适配关键很多人部署报错全是地址没改对容器互通不需要IP直接写服务名即可。application.yml 示例spring:# 数据库配置datasource:url:jdbc:mysql://mysql:3306/spring_db?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghaiusername:appuserpassword:app123456driver-class-name:com.mysql.cj.jdbc.Driver# Redis配置redis:host:redisport:6379password:redis123456重点host 填写 mysql、redis这是 Compose 内置 DNS 解析七、部署完整流程1. 打包项目SpringBoot 执行 Maven/Gradle 打包生成app.jar放入app/目录。2. 启动整套服务# 构建镜像并后台启动dockercompose up-d--build3. 查看启动日志dockercompose logs-fapp看到项目启动成功、无数据库/缓存报错即部署完成。八、高频运维命令后端必备# 重启后端服务更新jar后常用dockercompose restart app# 查看所有服务状态dockercomposeps# 停止所有服务dockercompose stop# 销毁容器保留数据dockercompose down九、方案优势对比传统部署环境零污染服务器不需要装JDK、MySQL、Redis环境统一本地、测试、生产一模一样杜绝环境问题一键迁移换服务器直接拉文件夹启动自动重启程序挂了自动恢复数据安全数据挂载宿主机删容器不丢数据十、新手避坑点SpringBoot 配置地址必须写mysql / redis不能写 localhost更新 jar 包必须重新构建docker compose up -d --builddepends_on 只控制启动顺序代码务必做好数据库重连重试服务器安全组务必放行 8080、3306、6379 端口本期总结本篇我们搭建了SpringBoot MySQL Redis企业级 Compose 开发部署模板。这套模板可以直接复用在个人项目、毕业设计、外包项目、小型生产环境是后端开发最高频、最实用的容器化部署方案。下期预告Docker Compose企业实战系列三前端Vue/React项目容器化部署手把手教你前端打包、Nginx代理、静态资源容器化、跨域配置完成前后端全套容器化部署。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

数据结构全梳理:从数组链表到哈希表与复杂度分析 2026/10/1 11:10:56

数据结构全梳理:从数组链表到哈希表与复杂度分析

读过多年书,带过新人,也在线上给别人看过代码,发现一个非常有意思的现象:很多人写程序,真正卡住的不是语法,不是框架,而是“数据该怎么摆”。一次简单的查询优化,有人能把数组复制出…

阅读更多 →
数据结构入门指南:从线性表到哈希表,掌握核心原理与应用 2026/10/1 11:10:47

数据结构入门指南:从线性表到哈希表,掌握核心原理与应用

1. 数据结构是什么,为什么每个程序员都绕不开它我第一次接触数据结构这个词是在大二的数据结构课上,当时完全不明白这门课到底在讲什么。链表、栈、队列、二叉树,每一个概念都抽象得要命,考试前背了一堆定义,考完就忘。…

阅读更多 →
【共创稿事节】喵屿 Pura X Max 折叠屏适配:HarmonyOS Dev Assistant 实战全记录 2026/10/1 11:10:39

【共创稿事节】喵屿 Pura X Max 折叠屏适配:HarmonyOS Dev Assistant 实战全记录

喵屿 Pura X Max 折叠屏适配:HarmonyOS Dev Assistant 实战全记录 本文基于「喵屿」应用在 HUAWEI Pura X Max 折叠屏上的一多适配实战,结合 HarmonyOS Dev Assistant 的官方能力与全流程编排,系统梳理插件介绍、安装配置、一多适配能力、一次…

阅读更多 →
Matlab中用CNN做单输入单输出时间序列预测的完整实践指南 2026/10/1 11:10:33

Matlab中用CNN做单输入单输出时间序列预测的完整实践指南

上个月我在做一个设备振动信号的预测任务:输入过去20个采样点的振动幅值,预测下一个采样点的数值。这就是典型的单输入单输出时间序列预测——只有一个特征序列作为输入,输出也只是一个未来值。我一开始用的ARIMA,后来同时试了LST…

阅读更多 →
基于Spring Boot的自习室预订座位管理系统:从规则设计到并发实践 2026/10/1 11:10:24

基于Spring Boot的自习室预订座位管理系统:从规则设计到并发实践

1. 为什么这类系统总在“预选座”和“实际履约”之间翻车先说个我亲眼见过的场景:学校考研自习室,两百多个座位,每天早上六点半开门,五点半就有人在门口排队。有人为了占座,把复习资料往桌上一堆,一整天人都…

阅读更多 →
Node-RED低代码可视化:零Node.js基础构建工业数据看板 2026/10/1 11:10:10

Node-RED低代码可视化:零Node.js基础构建工业数据看板

1. 这不是写代码,是搭积木:为什么“拖拽可视化”能绕过Node.js门槛 “即使不会node.js,拖拽就可完成数据的可视化展示”——这句话乍看像营销话术,但背后是一套真实存在的、已被工业现场和中小团队验证数年的低代码可视化路径。它…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉