Docker部署WordPress与MySQL的完整指南

来自:素雅营销研究院

头像 方知笔记
2025年05月02日 12:48

前言

在当今互联网时代,快速搭建网站已成为企业和个人的基本需求。WordPress作为全球最流行的内容管理系统(CMS),以其易用性和丰富的插件生态著称。而Docker作为轻量级的容器化技术,能够帮助我们快速部署和管理应用。本文将详细介绍如何使用Docker部署WordPress及其依赖的MySQL数据库。

准备工作

在开始之前,请确保您的系统已安装以下组件:

  1. Docker引擎(版本17.12.0+)
  2. Docker Compose(版本1.21.0+)
  3. 基本的Linux命令行知识

单容器部署方式

1. 部署MySQL容器

我们需要为WordPress准备数据库服务:

docker run --name wordpress-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress -d mysql:5.7

参数说明:

  • --name:指定容器名称
  • -e:设置环境变量(数据库密码、名称等)
  • -d:后台运行容器
  • mysql:5.7:使用MySQL 5.7版本镜像

2. 部署WordPress容器

接下来部署WordPress容器并连接到MySQL:

docker run --name my-wordpress --link wordpress-mysql:mysql -p 8080:80 -d wordpress

参数说明:

  • --link:连接MySQL容器
  • -p:端口映射(主机端口:容器端口)

使用Docker Compose部署

对于生产环境,推荐使用Docker Compose进行编排管理:

  1. 创建docker-compose.yml文件:
version: '3.3'

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
  1. 启动服务:
docker-compose up -d

配置优化

1. 持久化数据存储

为防止容器重启后数据丢失,应配置数据卷:

docker volume create wordpress-data
docker volume create mysql-data

然后在docker-compose.yml中引用这些卷。

2. 性能调优

  • 为MySQL容器分配适当内存限制
  • 配置WordPress缓存插件
  • 使用Nginx作为反向代理

常见问题解决

  1. 连接数据库失败
  • 检查数据库容器是否正常运行
  • 验证环境变量是否正确
  • 查看日志:docker logs wordpress-mysql
  1. WordPress安装页面无法访问
  • 检查端口映射是否正确
  • 确认防火墙设置
  • 尝试重启容器
  1. 性能缓慢
  • 增加资源限制
  • 考虑使用MariaDB替代MySQL
  • 添加Redis缓存

安全建议

  1. 定期备份数据库和WordPress文件
  2. 使用强密码替换默认凭证
  3. 限制数据库容器的外部访问
  4. 保持镜像版本更新

结语

通过Docker部署WordPress和MySQL,我们实现了环境的快速搭建和隔离,大大简化了部署和维护工作。无论是开发测试还是生产环境,这种方案都能提供灵活高效的解决方案。随着对Docker技术的深入掌握,您可以进一步优化配置,构建更加强大稳定的WordPress运行环境。