用 Docker Compose 快速搭建本地 MySQL+Redis 开发环境

举报
yd_265509607 发表于 2026/10/29 14:34:29 2026/10/29
【摘要】 一、为什么要用 Docker Compose在本地开发后端项目时,经常需要同时用到 MySQL 和 Redis。如果直接在电脑上安装,不同项目的版本容易冲突,换电脑后还要重新配置一遍。使用 Docker Compose 只需要一个 YAML 文件,就能一条命令启动整套依赖服务,团队成员拿到同一份文件就能得到完全一致的环境,非常适合日常开发和测试。 二、编写 docker-compose.y...

一、为什么要用 Docker Compose

在本地开发后端项目时,经常需要同时用到 MySQL 和 Redis。如果直接在电脑上安装,不同项目的版本容易冲突,换电脑后还要重新配置一遍。使用 Docker Compose 只需要一个 YAML 文件,就能一条命令启动整套依赖服务,团队成员拿到同一份文件就能得到完全一致的环境,非常适合日常开发和测试。

二、编写 docker-compose.yml

在项目根目录新建 docker-compose.yml,内容如下:

services:
  mysql:
    image: mysql:8.0
    container_name: dev-mysql
    environment:
      MYSQL_ROOT_PASSWORD: dev123456
      MYSQL_DATABASE: demo
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
  redis:
    image: redis:7-alpine
    container_name: dev-redis
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
volumes:
  mysql_data:
  redis_data:

这里有几个要点:MYSQL_DATABASE 会在首次启动时自动创建名为 demo 的数据库;volumes 把数据保存在命名卷中,容器删除重建后数据依然存在;端口映射让宿主机上的应用可以通过 localhost 直接访问两个服务。注意示例密码仅用于本地开发,千万不要在生产环境使用。

三、启动与验证

在同一目录执行 docker compose up -d 后台启动,再用 docker compose ps 查看两个容器的状态。看到状态为 running 以后,可以分别验证服务是否可用:执行 docker exec -it dev-redis redis-cli ping,返回 PONG 说明 Redis 正常;执行 docker exec -it dev-mysql mysql -uroot -pdev123456 -e “show databases;”,能看到 demo 数据库说明 MySQL 正常。之后在应用配置里把数据库地址填写为 127.0.0.1:3306,把缓存地址填写为 127.0.0.1:6379 即可开始开发。

四、常见问题与小技巧

第一,如果提示 3306 或 6379 端口被占用,说明本机已经安装了同名服务,可以把左侧端口改成 3307、6380 等其他数值。第二,需要彻底清理环境时执行 docker compose down -v,会同时删除容器和数据卷,操作前请确认数据已不再需要。第三,MySQL 首次初始化需要十几秒,应用如果启动过快可能连接失败,可以给服务增加 healthcheck,或者让应用具备重试机制。

总结

通过一个不到三十行的配置文件,我们就拥有了可重复、可迁移、可随时销毁重建的本地开发环境。把 docker-compose.yml 一起提交到代码仓库,新同事入职第一天只需执行一条命令就能跑起项目,这是提升团队开发效率的一个小而实用的习惯。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。