基于docker-compose的Nginx+Redis+MySQL统一化部署指南

腾讯云服务器一键部署若依Vue版:手把手教你用Docker Compose编排MySQL、Redis、Nginx和SpringBoot 本文详细介绍了在腾讯云服务器上使用Docker Compose一键部署若依Vue前后端分离项目的完整流程。通过容器化编排MySQL、Redis、Nginx和SpringBoot服务,实现生产级的高效部署方案,涵盖环境配置、服务编排、性能优化等关键环节,助力开发者快速搭建企业级权限管理系统。 阅读详情
AI摘要

本文针对运维新手,介绍用docker-compose统一部署Nginx、Redis、MySQL的方法。阐述了docker-compose的概念,给出安装执行步骤,包括准备工作、编写配置文件、部署命令、验证方法等,还对常见问题进行排查。统一管理具有配置集中、数据持久、日志统一等优势。

基于docker-compose的Nginx+Redis+MySQL统一化部署指南


前言

本文针对运维新手,演示如何用docker-compose统一部署Nginx、Redis、MySQL三大常用服务,实现配置文件、日志文件、数据存储的标准化路径规划,解决传统部署中文件分散管理的痛点。

本文使用的docker版本如下:

docker 版本:v20.10.17
docker-compose 版本:v2.7.0

一、docker-compose是什么?

docker-compose是Docker官方提供的容器编排工具,通过YAML格式文件定义多容器应用服务,实现一键式启动/停止、依赖管理、资源配置等操作。特别适合复杂多服务的标准化部署场景。

二、安装执行步骤

1.准备工作

需要安装docker和docker-compose 可以参考上一篇发布文章:Linux系统安装Docker与Docker Compose完整指南

目录结构说明

/home/docker/
├── mysql
│   ├── conf    # 自定义配置
│   ├── data    # 数据库文件
│   └── logs    # 查询日志/错误日志
├── redis
│   ├── conf    # redis.conf配置文件
│   ├── data    # RDB/AOF持久化文件
│   └── logs    # 运行日志
└── nginx
    ├── conf    # 虚拟主机配置
    ├── html    # 网站根目录
    └── logs    # 访问日志/错误日志

开始创建目录

# 创建标准化目录结构
sudo mkdir -p /home/docker/{nginx,redis,mysql}/{conf,logs,data,html}

# 设置目录权限(防止容器权限问题)
sudo chmod -R 777 /home/docker

2.编写docker-compose.yml

vim /home/docker/docker-compose.yml
配置如下如下:

version: '3.8'

services:
  nginx:
    image: nginx:1.22.1
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /home/docker/nginx/conf:/etc/nginx/conf.d
      - /home/docker/nginx/logs:/var/log/nginx
      - /home/docker/nginx/html:/usr/share/nginx/html
    restart: always

  redis:
    image: redis:7.2.4-alpine
    container_name: redis
    ports:
      - "6379:6379"  # 修正端口映射
    volumes:
      - /home/docker/redis/data:/data
      - /home/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
      - /home/docker/redis/logs:/var/log/redis
    command: redis-server /usr/local/etc/redis/redis.conf --requirepass your_password
    restart: always

  mysql:
    image: mysql:8.0.40
    container_name: mysql
    ports:
      - "3306:3306"  # 修正端口映射
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      TZ: Asia/Shanghai
    volumes:
      - /home/docker/mysql/data:/var/lib/mysql
      - /home/docker/mysql/conf:/etc/mysql/conf.d
      - /home/docker/mysql/logs:/var/log/mysql
    restart: always
    command: 
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci

部署前配置文件准备

mysql配置(可选)
vim /home/docker/mysql/conf/my.cnf

[mysql]
#设置服务器默认字符集为utf8mb4
default-character-set=utf8mb4
[mysqld]
#配置服务器的服务号,具备日后需要集群做准备
server-id = 1
#开启MySQL数据库的二进制日志,用于记录用户对数据库的操作SQL语句,具备日后需要集群做准备
log-bin=mysql-bin
#设置清理超过60天的日志,以免日志堆积造过多成服务器内存爆满
expire_logs_days=60
#允许最大的连接数
max_connections=16384
# 禁用符号链接以防止各种安全风险
symbolic-links=0
# 设置东八区时区
default-time_zone = '+8:00'
#wait_timeout参数值,由默认的8小时,修改为30分钟。
wait_timeout=1800
#修改back_log参数值:由默认的50修改为500 每个线程256K 1.6W线程2G左右
back_log=500
character_set_server=utf8mb4
bind-address = 0.0.0.0

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=SET NAMES utf8mb4

部署执行命令

# 启动所有服务(后台模式)
docker-compose up -d

# 查看运行状态
docker-compose ps

# 停止服务
# docker-compose down

配置验证指南

MySQL连接验证

docker exec -it mysql bash
mysql -h 127.0.0.1 -P 3306 -uroot -p
# 输入密码 your_password

Redis连接测试

docker exec -it redis sh
redis-cli -h 127.0.0.1 -p 6379 
auth # 输入密码 your_password

Nginx验证

浏览器访问 http://服务器IP 查看欢迎页

更新服务说明

docker-compose stop mysql
docker-compose rm -f mysql
docker-compose up -d mysql

常见问题排查

Q1:容器启动失败怎么办?

  • 查看日志:docker logs 容器名
  • 检查目录权限:ls -ld /home/docker/*

Q2:如何修改配置?

  • 宿主机修改对应conf目录下的配置文件
  • 执行 docker-compose restart 服务名

Q3:端口不通,需要关闭防火墙?

  • 关闭防火墙
  • 清空所有规则

总结

通过docker-compose实现三大服务的统一管理,具有以下优势:

配置文件集中管理,方便版本控制
数据持久化存储,避免容器销毁丢失数据
日志统一收集,便于故障排查
版本固定,避免环境差异问题
提示:生产环境建议使用docker secret管理密码,避免密码明文暴露

开发者认知操作系统:可复用的原子点滴记录模板 在软件工程中,‘开发经验’本质上是可复现的决策链路,而‘开发点滴’则是带上下文的最小知识单元。其底层原理在于将人类短期记忆(7±2信息块)无法承载的复杂调试上下文,通过结构化存档转化为可检索、可验证、可传承的技术资产。这种实践超越传统笔记或博客,具备明确的技术价值:防止知识随人员流动蒸发、加速新人上手、支撑线上问题秒级定位。典型应用场景包括分布式事务排查、浏览器兼容性修复、API错误处理演进等高频开发痛点。本文聚焦于一种轻量、嵌入式、Git原生的开发者认知操作系统设计,核心围绕原子点滴、经验脉络与知识图谱三 阅读详情

相关推荐

【脚本篇】---spyglass lint脚本

【代码】【脚本篇】---spyglass lint脚本。

冬瓜 6356

docker 部署 mysql、nginx、redis等服务

注意:如果容器启动失败,通过下面命令查看错误信息docker logs --tail 20 容器名。

qq_58706693的博客 982

Claude + Figma MCP 实战教程

• 拥有 Figma 的 Dev 或 Full seat(专业/企业账号)权限 才能启用 Dev-Mode MCP 服务 。• MCP 是通过标准接口连接 Claude 与 Figma,效率高,但目前仍为 Beta,稳定性可能有限。3. 服务启动后,会在本地运行,比如 http://127.0.0.1:3845/mcp 。如果设置正确,会显示已连接的 figma-dev-mode-mcp-server  。• 如果多次转换复杂组件,可能需要多次选择与多次生成,建议合理拆分设计任务。

weixin_49869937的博客 4451

docker-compose部署mysql+nginx+redis

1、创建docker-compose-mysql.yml。1、创建docker-compose-nginx.yml。1、创建docker-compose-redis.yml。

yy1209357299的博客 977

Python海康相机api---超简单入坑学习必看

海康官网下载相机驱动​安装好以后找到Python的开发文件目录参考:D:\MVS\MVS\Development\Samples\Python\MvImport这几个文件很重要,想调用海康相机取图会用到.​为了写代码方便可以把这几个文件拷贝一下,跟你的api主文件放在同一个文件夹下可以减少80%的烦恼.​。

weixin_59360687的博客 3478

C2000 ePWM与SDFM同步配置:从寄存器到Driverlib实战解析

在嵌入式实时控制系统中,脉宽调制(PWM)是实现电机驱动、数字电源等应用的核心技术,其信号质量和时序精度直接决定了系统性能。为实现精确控制,PWM信号常需与模数转换器(ADC)或Sigma-Delta滤波器(SDFM)的采样时刻严格同步,以消除开关噪声并获取准确的反馈信号。其技术原理在于通过硬件同步机制,将PWM的特定时间点(如周期中心)作为触发源,控制数据采集的启动时刻。这种硬件级同步能有效提升闭环控制的稳定性和动态响应速度,广泛应用于伺服驱动、变频器等高性能场景。本文聚焦于TI C2000系列微控制器,

weixin_33692284的博客 444

使用docker-compose安装php+nginx+redis

在该文件中,你可以根据自己的需求进行配置。它创建了三个服务:`nginx`、`php`和`redis`。上述Dockerfile基于`php:7.0-fpm`镜像,安装了`pdo_mysql`扩展,并将工作目录设置为`/var/www/html`。上述配置将所有对根URL的请求都转发到`index.php`文件,并将PHP文件的处理转发到`php`服务的`9000`端口。2. 创建一个新的项目目录,在该目录下创建一个名为`docker-compose.yml`的文件。

sinat_30175689的博客 1181

生态位宽度计算&可视化展示(R语言)

物种的生态位越宽,该物种的特化程度就越小,倾向于泛化种(generalist species);物种的生态位越窄,倾向于是一个特化种(specialists species)。生态位宽度是指物种(或其它生物单位)在群落中所利用的各种不同资源的总和。本篇所使用为生态位宽度指数即**Levins的生态位宽度指数。

weixin_53705272的博客 4435

docker compose部署nginx+redis+mysql

docker compose部署nginx+redis+mysql 由于本地服务器部署服务的话,进度慢,并且容易混乱,不好处理。于是,想到用docker容器部署服务应用。 1、准备好相关的文件,目录 注意:请提前安装docker和docker-compose并自行配置镜像加速。 (1)目录、文件结构图: (2)提前pull 相关镜像 docker pull mysql:8.0.29 docker pull nginx:latest docker pull redis:latest 2、编写docker-

生而无畏,战至终章 2179

(五)深入理解Bluez协议栈之“GATT Server Profile”

上一篇介绍Bluez协议栈的了GAP Profile的实现,本章节我们继续介绍GATT Profile的实现,参考的程序是Peripheral。通过阅读它的实现代码可以发现,它广播部分是通过mgmt来实现的,然后在初始化完成之后,创建了一个L2CAP类型的socket,来负责实现GATT Server的逻辑。

1142

【定位模块项目实战】正态分布变换(NDT)定位及建图(依赖高精度点云地图和三维激光雷达的定位方案)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、正态分布变换(NDT)定位解决的主要问题二、正态分布变换(NDT)定位的核心思想三、NDT算法流程1.多元正态分布概念2.网格化并计算正态分布参数3.变换参数和最大似然四、使用C++实现NDT配准参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对依赖高精度地图和激光雷达的定位技术–正态分布变换(NDT)定位做个简单的介绍,具体

qq_35635374的博客 4411

docker-compose部署Nginx/Mysql/Redis

redis.conf文件内容(全文复制即可, 其中注意修改requirepass 1234567, 将1234567改为新密码即可)mysql中的init.sql文件(init.sql中的密码, 与docker-compose.yaml一致)如运行后, 重新修改mysql密码无响应, 备份数据, 直接删除mysql中的db 文件, 重新运行。***其余文件手动创建 或 运行docker-compose up -build -d 创建***nginx.conf代码, 根据自己的业务将ip与端口替换。

weixin_57504427的博客 659

【AlphaFold2】深入浅出,讲解Evoformer|学习笔记

本篇博客是围绕youtube德国博主Kilian Mandon()的《从头实现AlphaFold2:AlphaFold Decoded》的第五期视频讲解和note-book内容写成的笔记,加上了自己的理解和对相关概念的解释。上期我们讲解了AlphaFold2的特征提前的部分【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解。本期,我们将介绍AlphaFold2中最为庞大且最为重要的部分——Evoformer。

Yaoyao2024的博客 2014

紧急避坑指南:Docker Compose部署WordPress必须注意的5个关键点

掌握Docker Compose部署WordPress的正确方法,避开常见陷阱。本文提供完整示例,涵盖环境配置、数据持久化、网络设置等5个关键点,适用于本地开发与生产环境。安全高效,提升部署成功率,值得收藏。

CompiWander的博客 720

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

MaxKB企业级智能体平台:3步实现AI知识库部署与RAG应用实战

MaxKB(Max Knowledge Brain)是一个强大的开源企业级智能体平台,专为构建智能知识库和RAG检索增强生成应用而设计。本文将为您提供从零开始的部署指南,涵盖Docker快速启动、模型集成、核心功能配置以及生产环境最佳实践,帮助您快速构建企业级AI应用。 ## 🔧 部署挑战与解决方案 ### 常见部署问题与应对策略 在企业环境中部署AI平台常面临以下挑战: **端口与网络

gitblog_00085的博客 745

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从零构建国标视频监控平台:wvp-GB28181-pro实战指南

当传统安防系统遭遇设备孤岛、协议壁垒和部署难题时,一个标准化的解决方案显得尤为迫切。wvp-GB28181-pro作为一款全面支持GB/T 28181-2016、部标808和部标1078协议的开源视频平台,正在重新定义视频监控系统的构建方式。本文将带你深入探索如何快速部署并掌握这个功能强大的国标视频监控平台。 ## 破局:为什么需要国标视频平台? 在数字化安防的浪潮中,企业常常面临三大痛点:*

gitblog_00874的博客 256

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Label Studio:开源数据标注平台的技术架构与生产级部署指南

Label Studio作为一款开源的多模态数据标注工具,为机器学习团队提供了从数据预处理到模型训练的全流程支持。其标准化输出格式和灵活的扩展机制使其成为学术界与工业界数据标注环节的理想选择,支持文本、图像、音频、视频和时间序列等多种数据类型的高效标注。 ## 技术价值主张:模块化架构驱动的数据标注革新 ### 多模态数据统一处理框架 Label Studio通过声明式标注模板系统实现了跨模

gitblog_00137的博客 268

5大架构创新:构建下一代智能运维平台的完整指南

在当今多云和混合云环境中,运维团队面临的最大挑战之一是警报疲劳和信息孤岛。Keep作为一个开源AI驱动的智能运维平台,通过统一化的警报管理和自动化工作流,为企业提供了现代化的AIOps解决方案。本文将深入解析Keep的技术架构、核心创新点以及企业级部署实践,帮助技术决策者和运维专家全面了解这一领先的智能运维平台。 ## 1. 项目愿景与技术定位 Keep的诞生源于传统运维工具的局限性。在Pro

gitblog_00898的博客 476

基于Spring Boot的“医检通”健康体检管理系统实现

医检通”健康体检管理系统基于Spring Boot微服务架构,整合了现代Web开发的各项主流技术,实现了体检业务流程的全面数字化。通过该系统,可以有效解决传统体检模式的痛点,提升运营效率,改善用户体验,并为后续的健康大数据分析奠定基础。本文概述了项目的背景意义、技术栈选型以及核心业务模块的代码实现,为开发类似健康管理平台提供了参考。

2501_93250029的博客 227

SpringBoot+Vue构建师生健康信息管理系统实战

Java Web全栈开发中,SpringBoot与Vue的前后端分离架构已成为企业级应用的主流技术方案。通过统一异常处理和Redis缓存机制,系统可实现高性能数据访问;采用ECharts可视化与实时预警模块,则能有效解决传统健康管理中的数据分散和响应延迟问题。这类校园管理系统开发涉及SQL优化、移动端适配等关键技术点,特别适合作为计算机专业毕业设计项目,既能掌握SpringBoot+Vue技术栈实践,又能学习到数据库设计、性能调优等工程经验。

weixin_34320724的博客 405

前端BUG、后端BUG还是环境BUG?一套方法帮你快速定位归属

在前后端分离的开发模式下,页面报错、接口异常、环境差异引发的故障往往难以快速定责。理解前端BUG、后端BUG与环境BUG的本质区别,是高效排查的第一步。前端问题通常表现为渲染和交互异常,后端问题多体现在接口逻辑与数据存储,而环境BUG则源于依赖版本、配置或运行时环境的不一致。实际定位时,应遵循先复现、再分层、后用排除法的思路,借助Chrome DevTools的Network面板、curl命令行、后端日志等工具逐层收窄范围。例如接口返回200但业务数据错误,或本地正常线上报500,都需要结合请求链路与日志数

weixin_34357436的博客 418

【2025】快速部署安装docker以及项目搭建所需要的基础环境(mysql、redis、nginx、nacos)

该文章主要用于实现快速部署docker以及相关web服务所需要的基础环境容器。编写该文章主要是因为公司的项目前面都是使用jar包进行部署,目前进行升级改造为docker部署。因为jar部署的项目,很容易出现部署人员离职后,如果部署文件写的不够详细,会造成找 项目部署地址都非常麻烦,并且环境不一致等问题,所以改造为docker部署。但docker部署每一个服务器都要去重新敲一遍命令部署docker,然后又都还需要去一个个部署项目所需要的相关数据库以及其他的一些中间件就会很累,所以就想到了通过编写。

weixin_52315708的博客 1540

DockerCompose部署服务

在本文中,我们使用Docker Compose配置了多个服务,包括MySQL数据库、前台应用、Redis缓存和后台应用。我们详细介绍了每个服务的准备工作和配置。通过使用Docker Compose,我们可以方便地定义和管理多个服务之间的依赖关系,并快速搭建整个应用的开发和运行环境。希望本文对您有所帮助,谢谢阅读!

阿强的博客 2382

Docker快速入门到项目部署,MySQL部署+Nginx部署

《Docker》是微服务在企业落地的最后一块拼图。微服务项目由于拆分粒度细,服务部署环境复杂,部署实例很多,维护困难。而Docker则可以解决项目部署的各种环境问题,让开发、运维一体化,真正实现持续集成、持续部署。大大提高企业项目开发到部署的效率。

我亦无他,唯手熟尔 1405

docker/docker-compose 部署 nginx+mysql+wordpress 实战

docker 和 docker-compose 部署 nginx+mysql+wordpress 实战

wohu1104的专栏 3919

docker-compose搭建nacos+nginx+mysql+redis+springboot项目

1.准备工作 请提前安装docker和docker-compose并自行添加jin'xi

单筱风的博客 1648
上一篇: Linux系统安装Docker与Docker Compose完整指南
慢性喝水
博客等级 码龄9年 6粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值