← 返回首页

WordPress 建站指南 Docker安装实战:官方镜像完整指南

DockerWordPressLnmp建站容器化

很多人装 WordPress 首先想到的是 Lnmp(Linux + Nginx 性能调优 + MySQL + PHP)一键包,或者宝塔面板。但 Docker 容器化部署正在成为更灵活的选择——尤其当你需要同时跑多个站点、或者想快速迁移环境的时候。

这篇文章说透一件事:Docker 官方镜像在 VPS 配置避坑 上部署 WordPress,包括步骤、坑和验证过的配置。

先说结论:你适合用 DockerWordPress

适合的场景:

不适合的场景:

原理:Docker 怎么跑 WordPress

WordPress 本质上是一个 PHP 应用 + MySQL 数据库。官方 Docker 镜像把这两个组件分别做成两个容器:

它们之间通过网络通信。docker-compose.yml 定义两个服务,Docker Compose 自动管理它们的生命周期。

步骤一:安装 DockerDocker Compose

验证过:Ubuntu 开发环境 24.04 LTS 上安装 Docker 官方方式。

# 安装 Docker
curl -fsSL https://get.docker.com | sh

# 验证安装
docker --version
# 输出:Docker version 29.4.0, build ... (2026年4月最新稳定版)

# 安装 Docker Compose(独立二进制)
curl -SL https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker-compose --version
# 输出:Docker Compose version v2.24.0

如果系统有 docker compose(v2+内置),可以直接用 docker compose 替代 docker-compose

步骤二:创建 docker-compose.yml

在你想放 WordPress 数据的目录创建文件:

version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress-app
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: your_strong_password_here
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-data:/var/www/html
    depends_on:
      mysql:
        condition: service_healthy

  mysql:
    image: mysql:8.0
    container_name: wordpress-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: root_strong_password_here
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: your_strong_password_here
    volumes:
      - ./mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 5

关键配置说明:

步骤三:启动并验证

# 在 docker-compose.yml 所在目录执行
docker-compose up -d

# 查看运行状态
docker-compose ps
# 应该看到 wordpress-app 和 wordpress-mysql 都是 "Up" 状态

# 查看启动日志(第一次启动会拉取镜像,等待1-2分钟)
docker-compose logs -f wordpress

启动成功后,访问 http://your-vps-ip:8080 应该能看到 WordPress 安装向导。

验证版本:

docker exec wordpress-app cat /var/www/html/wp-includes/version.php | grep "wp_version"
# 输出:wp_version = '6.9.4'

步骤四:Nginx 反向代理(可选但推荐)

既然已经用了 Docker,直接把 80/443 端口暴露给 Docker 不太安全。推荐用 Nginx 做反向代理:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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;
    }
}

配置后重载 Nginx:nginx -t && nginx -s reload

此时访问 yourdomain.com 直接走 Nginx → Docker WordPress

步骤五:HTTPS 配置(Let's Encrypt)

# 安装 Certbot
apt install -y certbot python3-certbot-nginx

# 申请证书(前提:域名已解析到 VPS)
certbot --nginx -d yourdomain.com

# 自动续期
certbot renew --dry-run

Nginx + Certbot 配置完成后,HTTPS 就绪,WordPress 后台地址:https://yourdomain.com/wp-admin

三个我踩过的坑

坑1:MySQL 启动慢导致 WordPress 连接失败

第一次启动时,MySQL 要做初始化,大概等 30 秒到 1 分钟。如果 depends_on 没有加 healthcheckWordPress 会在 MySQL 就绪前尝试连接,导致失败。

修复:加 condition: service_healthy,并适当增加 healthcheckretries(上面已配置)。

坑2:Docker 官方镜像默认不带 persistent storage

如果不用 volumes 挂载宿主机目录,删除容器后数据全丢。上面 docker-compose.yml 已经配了 ./wp-data./mysql-data 持久化。

坑3:内存小的 VPS(<1GB)被 OOM Kill

MySQL 8.0 容器最低要求约 512MB 内存,但跑起来稳定需要 1GB+。1GB RAM 的 VPS 上,如果同时跑 Nginx + Docker + MySQL + WordPress,容易被系统 OOM Killer 杀掉 MySQL。

修复:

适合人群

Docker 部署 WordPress 适合你,如果:

不适合你,如果:

快速对比:Lnmp vs Docker

Lnmp 一键包Docker 部署
安装速度5-15分钟5-10分钟(含镜像拉取)
多站点支持需手动配置 Nginx 虚拟主机docker-compose 多实例简单复制
环境迁移整站打包迁移`cp` 整个目录或 Git 管理
资源占用较低(无容器层开销)额外 200-500MB 内存
学习曲线熟悉 Linux 配置即可需要了解 Docker 基本概念
灵活度一般高(可自定义 Dockerfile)

结语

Docker 部署 WordPress 不是银弹,但当你熟悉 Docker 之后,它带来的环境一致性和迁移便利性是 Lnmp 方案很难比的。尤其是你要同时管理多个 WordPress 站点,或者在本地开发完推到生产环境,Docker 的优势就显现出来了。

建议:如果你还没用过 Docker,不妨在一个测试 VPS 上试一次,体验一下什么叫"配置即代码"。

如果你想买一本 WordPress 实战书籍配合本文,可以考虑 WordPress 插件开发教程,截至2026年4月仍有售。

👉 参与 AI 技术交流:MiniMax API 平台,探索 AI Agent 工作流自动化。

🔗 Related Tech Articles

Deep dive into related technical topics:

WordPress Docker安装实战:官方镜像完整指南
技术标签: 建站, 容器化
Docker Compose v5 迁移踩坑全记录
技术标签: docker compose, vps
WP-CLI自动更新配置完整指南
技术标签: wp-cli, 自动更新
🐳 Docker Dev Environment Hardware
查看推荐 →