用 docker 搭建 wordpress 博客系统核心是组合 mysql 与 wordpress 两个服务,通过 docker-compose.yml 定义容器、挂载数据卷(db_data/wp_data)确保持久化,配置环境变量实现互通,80 端口访问完成初始化;mysql 8.0 需指定认证插件,wordpress_config_extra 避免 ftp 提示。

用 Docker 搭建完整的 WordPress 博客系统,核心是组合 MySQL(数据库) + WordPress(应用)两个服务,并确保它们能通信、数据不丢失、访问端口开放。整个过程不需要装 Nginx、PHP 或手动配环境,一条 docker-compose up -d 就能跑起来。
安装基础运行环境
先确认系统已装好 Docker 和 Docker Compose:
- Linux(如 CentOS/Rocky/openEuler)执行:
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin - 启动并设为开机自启:
sudo systemctl enable --now docker - 验证版本:
docker --version && docker compose version
建议配置国内镜像源(如阿里云、中科大),加快镜像拉取速度。编辑 /etc/docker/daemon.json,加入 registry-mirrors 字段后重启 Docker。
准备 docker-compose.yml 配置文件
新建目录(如 ~/wordpress),创建 docker-compose.yml,内容如下(兼容 MySQL 8.0+,含健康检查和数据卷):
version: '3.8'
services:
db:
image: mysql:8.0
command: '--default-authentication-plugin=mysql_native_password'
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123}
MYSQL_DATABASE: ${MYSQL_DATABASE:-wordpress}
MYSQL_USER: ${MYSQL_USER:-wpuser}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-wppass}
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot123"]
interval: 20s
timeout: 10s
retries: 5
<p>wordpress:
image: wordpress:latest
volumes:</p>
- wp_data:/var/www/html ports:
- "80:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: ${MYSQL_USER:-wpuser} WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD:-wppass} WORDPRESS_DB_NAME: ${MYSQL_DATABASE:-wordpress} WORDPRESS_CONFIG_EXTRA: | define('FS_METHOD', 'direct');
volumes: db_data: wp_data:
⚠️ 注意:MySQL 8.0 默认认证插件变更,必须加 command 行,否则 WordPress 连不上;WORDPRESS_CONFIG_EXTRA 可避免后台更新插件时反复要求 FTP 登录。
配置与启动服务
在项目目录下操作:
- 创建
.env文件(基于.env.example模板),填入自己的密码,例如:MYSQL_ROOT_PASSWORD=my_db_root_2026MYSQL_PASSWORD=my_wp_user_pass - 执行启动命令:
docker compose up -d(Docker Compose v2 推荐用docker compose,非docker-compose) - 查看状态:
docker compose ps确认两个容器都是runningdocker compose logs -f wordpress可实时看 WordPress 初始化日志
启动成功后,浏览器访问 http://localhost(或服务器 IP),即可进入 WordPress 安装向导,按提示设置站点标题、管理员账号即可完成部署。
后续可扩展功能
这个基础结构支持平滑扩展:
- 加 phpMyAdmin:在
docker-compose.yml中新增pma服务,镜像用phpmyadmin/phpmyadmin,depends_on指向db,映射端口如8080:80 - 加 Nginx 反向代理:用于 HTTPS、多站点或静态资源优化,把
wordpress容器设为上游,不暴露 80 端口给外网 - 加 Redis 缓存:WordPress 插件(如 WP Redis)配合
redis:alpine容器,提升并发性能 - 备份数据:直接备份
db_data和wp_data卷目录,或用mysqldump进入 db 容器导出
不复杂但容易忽略。











