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.ymlports"8081:
80"

然后执行 docker-compose down && docker-compose up -d 重新创建容器。

2. 数据库连接失败

检查 WORDPRESS_DB_HOST 是否写为 db:3306,注意 db 是上面定义的service名称。
另外确认数据库容器的 MYSQL_DATABASEMYSQL_USERMYSQL_PASSWORD 与WordPress环境变量一致。

3. 如何升级WordPress?

WordPress容器内可以自动检测更新,但安全起见建议先备份 ./wp_data 目录。
然后拉取最新镜像并重启:docker-compose pull wordpress && docker-compose up -d

4. 数据持久化注意

volumes 挂载的本地目录(如 ./db_data)要保留好。
如果容器被误删,重新创建容器时确保在相同目录启动即可恢复数据。
建议定期对这两个文件夹做异地备份。

效果验证与后续优化

  1. 打开浏览器访问 http://你的IP:8080,进入WordPress语言选择界面,按提示填写站点标题、管理员账号和密码即可完成安装。
  2. 安装完成后可正常登录后台、发布文章,说明部署成功。
  3. 如果想用域名访问,可以在WordPress后台设置(或直接修改数据库)将站点地址改为域名,再用Nginx反向代理到 127.0.0.1:8080

完成上述步骤后,你已经成功通过Docker部署了WordPress。
如果遇到异常,优先检查 docker logs wordpress_appdocker logs wordpress_db 的输出,定位问题非常方便。

避坑总结:端口不冲突、数据库凭据一致、挂载目录有权限(777或属主为www-data)是三大关键点。只要按本文步骤执行,零基础也能顺利搞定Docker部署WordPress。
分享到:
上一篇
Linux服务器磁盘分区格式化完整教程:从查看磁盘到自动挂载
下一篇
服务器容器化部署最佳实践:Docker 入门到落地
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意