Docker / Kubernetes

Docker Compose 入门:一份配置启动 WordPress、MySQL 与 Redis

学习目标:通过“Docker Compose 入门:一份配置启动 WordPress、MySQL 与 Redis”掌握可在真实项目里复用的工程方法。本文不只解释概念,还给出环境要求、实施顺序、代码/配置、验证方法和故障排查。

适用场景与前置条件

安装 Docker/Compose 或拥有测试 Kubernetes Namespace;示例不使用生产 Secret,镜像版本明确固定。

如果这是第一次接触该主题,建议先在独立测试环境完成一遍完整流程,再把变更拆成小步骤进入真实项目。重要配置和数据修改都应先有备份或可恢复版本。

核心知识地图

  • 镜像是不可变交付物,容器是镜像的运行实例,Volume 承载需要持久化的数据。
  • Compose 适合多服务开发/单机编排,Kubernetes 解决更大规模的调度、服务发现和声明式运维。
  • readiness 决定是否接流量,liveness 决定是否重启,startup probe 保护慢启动应用。
  • ConfigMap/Secret 负责配置分离,但 Secret 不是自动等于加密保险箱。

实施步骤

  1. 步骤 1:先做可重复构建的 Dockerfile,固定基础镜像并减少不必要层和工具。
  2. 步骤 2:为服务定义健康检查、端口、Volume、环境变量和资源需求。
  3. 步骤 3:在 Compose/Namespace 中验证网络、重启、数据持久化和依赖故障。
  4. 步骤 4:Kubernetes 发布使用 Deployment/Service/ConfigMap 等小而清晰对象。
  5. 步骤 5:上线前验证滚动更新、回滚、日志、资源限制和探针。

代码 / 配置演示

下面的片段使用示例域名、测试数据和非真实凭据,重点展示结构与验证方式。复制到项目后,要根据当前版本的官方文档调整参数。

services:
  db:
    image: mysql:8.4
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: example-only
      MYSQL_RANDOM_ROOT_PASSWORD: "1"
    volumes: [db-data:/var/lib/mysql]
  wordpress:
    image: wordpress:php8.3-apache
    ports: ["8080:80"]
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: example-only
      WORDPRESS_DB_NAME: wordpress
    depends_on: [db]
volumes: { db-data: {} }

如何验证结果

不要只看“页面能打开”或“命令没有报错”。验证应至少包含三个维度:一是功能结果是否符合预期;二是日志、状态码、查询计划或指标能否证明请求走了正确路径;三是失败场景是否会返回明确错误并保持系统可恢复。对上线变更,建议记录变更前后数据,便于回归比较。

常见问题与排错

  • 使用 latest 镜像导致同一配置不同时间运行不同代码。
  • 把数据库数据写在容器可写层,重建后丢失。
  • 探针检查错误路径,健康实例被持续重启。
  • Secret 明文提交 Git 或直接打印到日志。

如果问题仍然存在,按配置 → 运行时 → 网络/依赖 → 数据 → 缓存的顺序逐层缩小范围。每次只改变一个主要变量,并保留失败日志;一次同时改多处会让真正原因更难确认。

上线检查清单

  • 版本和依赖已确认,示例配置没有直接复制生产密码或 Token。
  • 关键路径有可重复的验证命令、自动测试或健康检查。
  • 日志能定位一次请求/任务,且不会记录密码、Cookie、Token 等敏感值。
  • 数据库、配置、证书或部署变更有备份和回滚步骤。
  • 已阅读当前版本的官方文档,确认没有依赖过时 API 或废弃配置。

总结

“Docker Compose 入门:一份配置启动 WordPress、MySQL 与 Redis”的价值不在于记住某一段命令,而在于建立稳定的判断流程:明确边界、做最小验证、观察真实运行结果、处理失败路径,再把验证固化为测试和文档。这样即使框架或版本变化,也能快速判断哪些部分需要调整。

SOURCE CODE

配套源码

这些文件随主题包分发,使用示例域名和非真实凭据。请先在独立测试环境验证。

docker-kubernetes/compose-wordpress.yaml查看文件 →
REFERENCES

官方参考资料

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注