docker-compose 多服务编排:用 WordPress+MySQL+Redis 串起一套本地环境

举报
yd_259625967 发表于 2026/10/31 10:51:05 2026/10/31
【摘要】 用 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)

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

全部回复

上滑加载中

设置昵称

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

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

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