如何将运行在Debian服务器上的WordPress迁移至Docker容器
WordPress容器迁移方案说明及操作步骤
方案可行性判断
你设想的直接挂载现有站点数据、使用官方WordPress容器部署的方案完全可行,无需自行搭建完整LAMP容器。官方WordPress镜像已经封装了符合运行要求的Apache+PHP环境,仅需额外搭配MySQL/MariaDB容器提供数据库服务即可,相比自定义LAMP容器,镜像维护、版本迭代、配置适配的成本都更低。
具体操作步骤
第一步:全量备份现有数据
操作前务必先备份两份核心数据,避免操作失误导致数据丢失:- 备份WordPress站点根目录文件(默认路径为
/var/www/html,可根据你实际的部署路径调整):tar -zcvf wp-site-backup.tar.gz /var/www/html/* - 备份WordPress对应的MySQL数据库:
mysqldump -u 你的数据库用户名 -p 你的WordPress数据库名 > wp-db-backup.sql
执行命令后输入数据库密码即可完成备份。
- 备份WordPress站点根目录文件(默认路径为
第二步:安装容器运行环境
在Debian服务器上安装Docker和Docker Compose:apt update && apt install -y docker.io docker-compose systemctl enable --now docker第三步:准备部署目录与配置文件
- 新建部署目录并进入:
mkdir -p /opt/wp-docker/{html,db} && cd /opt/wp-docker - 把之前备份的站点文件解压到html目录:
tar -zxvf 你的备份文件存放路径/wp-site-backup.tar.gz -C ./html - 给站点目录赋予正确权限,官方WordPress容器内运行用户uid为33,执行:
chown -R 33:33 ./html - 新建
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中数据库服务的名称保持一致,其余数据库相关配置无需改动。第六步:测试并正式切量
- 启动所有容器:
docker-compose up -d - 访问
服务器IP:8080验证站点所有功能是否正常,包括前台页面、图片加载、后台登录、插件/主题功能等。 - 确认无问题后,停止宿主机上原本运行的Apache/NGINX、MySQL服务,避免端口冲突:
systemctl stop apache2 mysql && systemctl disable apache2 mysql - 修改
docker-compose.yml中wordpress的端口映射为"80:80",如果需要HTTPS可额外配置Nginx反向代理容器处理SSL证书,重启容器后即可正式对外提供服务:docker-compose up -d --force-recreate
- 启动所有容器:
注意事项
- 建议固定镜像版本,不要使用
latest标签,避免后续容器重启自动升级出现兼容性问题。 - 定期备份
/opt/wp-docker目录下的所有内容,即可完成全站数据备份。
内容的提问来源于stack exchange,提问作者Steppenstreuner
相关产品推荐
相关产品推荐

