用 Docker Compose 快速搭建本地 MySQL+Redis 开发环境
一、为什么要用 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 一起提交到代码仓库,新同事入职第一天只需执行一条命令就能跑起项目,这是提升团队开发效率的一个小而实用的习惯。
- 点赞
- 收藏
- 关注作者
评论(0)