使用 Docker 部署 WordPress 可以让建站变得前所未有的简单。本教程将带你使用 Docker Compose 一键部署完整的 WordPress 网站,包含 MySQL 数据库和 Nginx 服务器。
一、Docker 部署 WordPress 的优势
- 环境隔离,不污染系统
- 一键部署,分钟级完成
- 易于备份和迁移
- 版本管理方便
- 资源占用可控
二、部署前准备
步骤 1:检查系统要求
# 检查 Docker 版本
docker --version
# 检查 Docker Compose 版本
docker-compose --version
# 检查系统资源
free -h
df -h
步骤 2:安装 Docker(如未安装)
# Ubuntu/Debian 安装 Docker
curl -fsSL https://get.docker.com | sh
systemctl enable docker
systemctl start docker
# 添加当前用户到 docker 组
usermod -aG docker $USER
三、创建 Docker Compose 配置文件
步骤 3:创建项目目录
# 创建网站目录
mkdir -p /opt/wordpress
cd /opt/wordpress
# 创建数据持久化目录
mkdir -p data/mysql
mkdir -p data/wordpress
步骤 4:编写 docker-compose.yml
version: "3.8"
services:
db:
image: mysql:8.0
container_name: wordpress-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password_123
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress_password_123
volumes:
- ./data/mysql:/var/lib/mysql
networks:
- wordpress-network
wordpress:
image: wordpress:latest
container_name: wordpress-app
restart: always
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress_password_123
WORDPRESS_DB_NAME: wordpress
volumes:
- ./data/wordpress:/var/www/html
networks:
- wordpress-network
nginx:
image: nginx:alpine
container_name: wordpress-nginx
restart: always
depends_on:
- wordpress
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./data/wordpress:/var/www/html
networks:
- wordpress-network
networks:
wordpress-network:
driver: bridge
四、配置 Nginx 反向代理
步骤 5:创建 Nginx 配置文件
cat > nginx.conf << "EOF"
events {
worker_connections 1024;
}
http {
upstream wordpress {
server wordpress:80;
}
server {
listen 80;
server_name _;
location / {
proxy_pass http://wordpress;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
EOF
五、启动 WordPress 容器
步骤 6:启动所有服务
# 启动所有容器
docker-compose up -d
# 查看容器状态
docker-compose ps
# 查看日志
docker-compose logs -f
步骤 7:验证服务运行
# 检查容器
docker ps
# 测试数据库连接
docker exec wordpress-db mysql -u wordpress -pwordpress_password_123 -e "SHOW DATABASES;"
# 测试 WordPress 访问
curl -I http://localhost
六、配置 WordPress
步骤 8:访问 WordPress 安装页面
- 浏览器访问:http://你的服务器 IP
- 选择语言(中文)
- 填写站点信息
- 设置管理员账号
- 完成安装
七、日常维护命令
# 停止所有容器
docker-compose down
# 重启所有容器
docker-compose restart
# 查看日志
docker-compose logs -f wordpress
# 进入容器
docker exec -it wordpress-app bash
# 备份数据库
docker exec wordpress-db mysqldump -u wordpress -pwordpress_password_123 wordpress > backup.sql
# 更新镜像
docker-compose pull
docker-compose up -d
八、故障排查
问题 1:容器无法启动
# 查看详细日志
docker-compose logs db
docker-compose logs wordpress
# 检查端口占用
netstat -tulpn | grep :80
总结
使用 Docker 部署 WordPress 简单高效,便于管理和维护。所有配置都已容器化,迁移备份都非常方便。