Docker环境下安装WordPress与MySQL的完整指南

来自:素雅营销研究院

头像 方知笔记
2025年05月05日 03:53

前言

在当今云计算和容器化技术盛行的时代,Docker已成为开发者部署应用的利器。本文将详细介绍如何使用Docker快速搭建WordPress网站并连接MySQL数据库,这种组合既保持了传统LAMP架构的稳定性,又具备了容器化的灵活性和便捷性。

准备工作

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

  • Docker引擎(建议版本20.10+)
  • Docker Compose(建议版本1.29+)
  • 基本的Linux命令行知识

方法一:使用Docker Compose一键部署

这是最简单快捷的部署方式,只需一个YAML配置文件即可完成所有服务部署。

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

services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
networks:
- wp_network

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wp_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
networks:
- wp_network

volumes:
db_data:
wp_data:

networks:
wp_network:
driver: bridge
  1. 启动服务:
docker-compose up -d
  1. 访问WordPress: 在浏览器中输入http://localhost:8000即可开始WordPress的安装向导。

方法二:分步安装Docker容器

如果您希望更深入了解各个组件的工作方式,可以采用分步安装方法。

1. 拉取MySQL镜像并运行容器

docker pull mysql:8.0
docker run --name mysql_wp -e MYSQL_ROOT_PASSWORD=rootpass -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wppass -p 3306:3306 -d mysql:8.0

2. 拉取WordPress镜像并运行容器

docker pull wordpress:latest
docker run --name my_wordpress --link mysql_wp:mysql -e WORDPRESS_DB_HOST=mysql_wp -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wppass -e WORDPRESS_DB_NAME=wordpress -p 8080:80 -d wordpress

3. 验证安装

访问http://localhost:8080应该能看到WordPress的安装页面。

常见问题解决

  1. 端口冲突
  • 如果8000或8080端口被占用,可以修改docker-compose.yml中的端口映射或使用其他端口
  1. 数据库连接失败
  • 确保MySQL容器已正常运行:docker ps
  • 检查环境变量是否正确传递
  • 可以进入MySQL容器验证连接:docker exec -it mysql_wp mysql -u wpuser -p
  1. 持久化存储
  • 使用Docker卷(volumes)确保数据不会随容器删除而丢失
  • 备份数据:docker cp mysql_wp:/var/lib/mysql ./mysql_backup

高级配置

使用自定义配置文件

  1. 创建自定义的wp-config.php文件
  2. 修改docker-compose.yml中的WordPress服务部分:
wordpress:
volumes:
- ./wp-config.php:/var/www/html/wp-config.php
- wp_data:/var/www/html

启用HTTPS

  1. 获取SSL证书
  2. 配置Nginx反向代理
  3. 修改端口映射为443:443

性能优化

  1. 配置OPcache
  2. 添加Redis缓存
  3. 调整MySQL配置参数

维护与管理

常用命令

  • 查看运行中的容器:docker ps
  • 查看日志:docker logs [容器名/ID]
  • 进入容器:docker exec -it [容器名/ID] bash
  • 停止服务:docker-compose down
  • 更新镜像:docker-compose pull && docker-compose up -d

备份与恢复

  1. 备份数据库:
docker exec mysql_wp sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > all-databases.sql
  1. 备份WordPress文件:
docker cp my_wordpress:/var/www/html ./wordpress_backup

结语

通过Docker部署WordPress和MySQL不仅简化了安装过程,还提供了环境隔离、快速部署和易于迁移等优势。无论是开发测试还是生产环境,这种容器化的解决方案都能显著提高工作效率。随着对Docker的深入理解,您可以进一步探索更复杂的部署架构,如集群部署、负载均衡等高级功能。