docker-compose 多服务编排:用 WordPress+MySQL+Redis 串起一套本地环境
【摘要】 用 docker-compose 编排 WordPress、MySQL、Redis 三服务,覆盖依赖顺序、网络、环境变量与健康检查等本地开发常见需求。本地要一套完整的 Web 栈(应用 + 数据库 + 缓存),靠 docker-compose 一条命令就能拉起来。本文用 WordPress 为例,讲清多服务编排的要点。docker-compose.yml 的关键部分是「服务间依赖 + 网络 ...
用 docker-compose 编排 WordPress、MySQL、Redis 三服务,覆盖依赖顺序、网络、环境变量与健康检查等本地开发常见需求。
本地要一套完整的 Web 栈(应用 + 数据库 + 缓存),靠 docker-compose 一条命令就能拉起来。本文用 WordPress 为例,讲清多服务编排的要点。
docker-compose.yml 的关键部分是「服务间依赖 + 网络 + 环境变量」。示例:
version: "3.8"
services:
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wp
volumes: [dbdata:/var/lib/mysql]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
interval: 5s
retries: 10
redis:
image: redis:7
web:
image: wordpress:latest
ports: ["8080:80"]
depends_on:
db: { condition: service_healthy }
redis: { condition: service_started }
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: root
volumes: { dbdata: {} }
要点一:依赖顺序。 普通 depends_on 只保证「先启动」,不保证「先就绪」。所以数据库一定加 healthcheck,用 service_healthy 条件,否则应用连库时 DB 还没起来会崩。
要点二:网络与命名。 同一 compose 文件里的服务在同一个默认网络,彼此用「服务名」做 host。所以代码里连数据库写 db 而不是 127.0.0.1。
要点三:数据持久化。 数据库、缓存的状态放 volumes,不然每次 down 数据全丢。
跑起来后 docker compose up -d,浏览器打开 8080 即可装 WordPress。本地开发最大的坑就是「容器连不上数据库」,90% 都是没配健康检查或 host 写错成 127.0.0.1。把这套模板存下来,换任何应用栈(Node、Python、Java)都照这个结构填就行。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)