Docker部署wordpress
为什么用Docker部署WordPress
传统搭建WordPress需要手动安装Apache/Nginx、PHP、MySQL并配置各种依赖,对新手很不友好。
使用Docker后,只需几个命令就能把WordPress和数据库环境封装成独立容器,环境完全隔离,迁移和备份也异常简单。
如果你之前从未接触过Docker,别担心,本文会从零开始把每一步操作拆解清楚。
准备工作:一台服务器和Docker环境
- 一台运行Linux的云服务器(推荐Ubuntu 20.04或CentOS 7+,2核2G起步)。
- 安装Docker(如果服务器还没有Docker)。SSH登录后执行以下命令:
# 使用官方脚本快速安装Docker
wget -qO- https://get.docker.com/ | sh
# 将当前用户加入docker组,避免每次用sudo
sudo usermod -aG docker $USER
# 重新登录使组生效
newgrp docker
- 安装Docker Compose(用于编排多容器):
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
核心步骤:编写docker-compose.yml并启动
在服务器任意目录下(例如 /opt/wordpress)创建一个名为 docker-compose.yml 的文件,内容如下:
version: '3.8'
services:
db:
image: mysql:8.0
container_name: wordpress_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: myrootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
volumes:
- ./db_data:/var/lib/mysql
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress_app
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp_data:/var/www/html
关键说明:ports: "8080:80"表示将服务器的8080端口映射到容器的80端口。你可以将8080改成任意未占用的端口(如8081),注意安全组/防火墙要放行该端口。volumes挂载了数据库和WordPress文件,保证容器删除后数据不丢失。
接下来进入该目录并启动:
cd /opt/wordpress
docker-compose up -d
启动后使用 docker ps 查看两个容器是否正常运行。
若无报错,在浏览器访问 http://你的服务器IP:8080,即可看到WordPress安装界面。
常见问题与避坑说明
1. 端口被占用怎么办?
如果8080端口已被占用(例如Nginx),
可修改 docker-compose.yml 中 ports 为 "8081:,
80"
然后执行 docker-compose down && docker-compose up -d 重新创建容器。
2. 数据库连接失败
检查 WORDPRESS_DB_HOST 是否写为 db:3306,注意 db 是上面定义的service名称。
另外确认数据库容器的 MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORD 与WordPress环境变量一致。
3. 如何升级WordPress?
WordPress容器内可以自动检测更新,但安全起见建议先备份 ./wp_data 目录。
然后拉取最新镜像并重启:docker-compose pull wordpress && docker-compose up -d。
4. 数据持久化注意
volumes 挂载的本地目录(如 ./db_data)要保留好。
如果容器被误删,重新创建容器时确保在相同目录启动即可恢复数据。
建议定期对这两个文件夹做异地备份。
效果验证与后续优化
- 打开浏览器访问
http://你的IP:8080,进入WordPress语言选择界面,按提示填写站点标题、管理员账号和密码即可完成安装。 - 安装完成后可正常登录后台、发布文章,说明部署成功。
- 如果想用域名访问,可以在WordPress后台设置(或直接修改数据库)将站点地址改为域名,再用Nginx反向代理到
127.0.0.1:8080。
完成上述步骤后,你已经成功通过Docker部署了WordPress。
如果遇到异常,优先检查 docker logs wordpress_app 和 docker logs wordpress_db 的输出,定位问题非常方便。
避坑总结:端口不冲突、数据库凭据一致、挂载目录有权限(777或属主为www-data)是三大关键点。只要按本文步骤执行,零基础也能顺利搞定Docker部署WordPress。