You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将运行在Debian服务器上的WordPress迁移至Docker容器

WordPress容器迁移方案说明及操作步骤

方案可行性判断

你设想的直接挂载现有站点数据、使用官方WordPress容器部署的方案完全可行,无需自行搭建完整LAMP容器。官方WordPress镜像已经封装了符合运行要求的Apache+PHP环境,仅需额外搭配MySQL/MariaDB容器提供数据库服务即可,相比自定义LAMP容器,镜像维护、版本迭代、配置适配的成本都更低。

具体操作步骤

  • 第一步:全量备份现有数据
    操作前务必先备份两份核心数据,避免操作失误导致数据丢失:

    1. 备份WordPress站点根目录文件(默认路径为/var/www/html,可根据你实际的部署路径调整):
      tar -zcvf wp-site-backup.tar.gz /var/www/html/*
    2. 备份WordPress对应的MySQL数据库:
      mysqldump -u 你的数据库用户名 -p 你的WordPress数据库名 > wp-db-backup.sql
      执行命令后输入数据库密码即可完成备份。
  • 第二步:安装容器运行环境
    在Debian服务器上安装Docker和Docker Compose:

    apt update && apt install -y docker.io docker-compose
    systemctl enable --now docker
    
  • 第三步:准备部署目录与配置文件

    1. 新建部署目录并进入:
      mkdir -p /opt/wp-docker/{html,db} && cd /opt/wp-docker
    2. 把之前备份的站点文件解压到html目录:
      tar -zxvf 你的备份文件存放路径/wp-site-backup.tar.gz -C ./html
    3. 给站点目录赋予正确权限,官方WordPress容器内运行用户uid为33,执行:
      chown -R 33:33 ./html
    4. 新建docker-compose.yml配置文件,内容参考如下,把数据库相关配置替换为你原有站点的配置即可:
    version: '3.8'
    services:
      db:
        image: mariadb:10.6
        volumes:
          - ./db:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: 自定义root密码
          MYSQL_DATABASE: 你的WordPress数据库名
          MYSQL_USER: 你的WordPress数据库用户名
          MYSQL_PASSWORD: 你的WordPress数据库密码
        restart: always
      wordpress:
        depends_on:
          - db
        image: wordpress:php8.1-apache
        volumes:
          - ./html:/var/www/html
        ports:
          - "8080:80"
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_USER: 你的WordPress数据库用户名
          WORDPRESS_DB_PASSWORD: 你的WordPress数据库密码
          WORDPRESS_DB_NAME: 你的WordPress数据库名
        restart: always
    
  • 第四步:导入数据库备份
    先启动数据库容器:
    docker-compose up -d db
    等待10秒左右数据库初始化完成后,导入之前备份的数据库文件:
    docker exec -i wp-docker_db_1 mysql -u 你的数据库用户名 -p你的数据库密码 你的数据库名 < 你的备份路径/wp-db-backup.sql
    注意:-p和密码之间不要留空格

  • 第五步:修改站点配置
    编辑./html/wp-config.php文件,找到数据库地址配置项,将原本的localhost修改为db,和docker-compose中数据库服务的名称保持一致,其余数据库相关配置无需改动。

  • 第六步:测试并正式切量

    1. 启动所有容器:
      docker-compose up -d
    2. 访问服务器IP:8080验证站点所有功能是否正常,包括前台页面、图片加载、后台登录、插件/主题功能等。
    3. 确认无问题后,停止宿主机上原本运行的Apache/NGINX、MySQL服务,避免端口冲突:
      systemctl stop apache2 mysql && systemctl disable apache2 mysql
    4. 修改docker-compose.yml中wordpress的端口映射为"80:80",如果需要HTTPS可额外配置Nginx反向代理容器处理SSL证书,重启容器后即可正式对外提供服务:
      docker-compose up -d --force-recreate

注意事项

  • 建议固定镜像版本,不要使用latest标签,避免后续容器重启自动升级出现兼容性问题。
  • 定期备份/opt/wp-docker目录下的所有内容,即可完成全站数据备份。

内容的提问来源于stack exchange,提问作者Steppenstreuner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:45:04