使用 Docker 一键部署 WordPress 网站

使用 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 安装页面

  1. 浏览器访问:http://你的服务器 IP
  2. 选择语言(中文)
  3. 填写站点信息
  4. 设置管理员账号
  5. 完成安装

七、日常维护命令

# 停止所有容器
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 简单高效,便于管理和维护。所有配置都已容器化,迁移备份都非常方便。

来源:https://mjj.728.hk/