插件窝 干货文章 docker wordpress怎么备份

docker wordpress怎么备份

备份 WordPress backup MySQL 629    来源:    2025-04-06

Docker WordPress 备份方案

备份 Docker 运行的 WordPress 网站需要考虑两部分:文件系统和数据库。以下是几种可靠的备份方法:

方法一:手动备份

1. 备份 WordPress 文件

# 查找 WordPress 容器挂载的卷
docker inspect <wordpress_container_name> | grep "Source"

# 复制整个 WordPress 目录到备份位置
cp -r /var/lib/docker/volumes/<wordpress_volume>/_data /path/to/backup/wordpress_files

2. 备份 MySQL 数据库

# 导出数据库
docker exec <mysql_container_name> mysqldump -u root -p<password> wordpress > /path/to/backup/wordpress_db.sql

方法二:使用 Docker 卷备份

1. 备份 WordPress 卷

docker run --rm --volumes-from <wordpress_container_name> -v /path/to/backup:/backup ubuntu tar cvf /backup/wordpress_backup.tar /var/www/html

2. 备份 MySQL 卷

docker run --rm --volumes-from <mysql_container_name> -v /path/to/backup:/backup ubuntu tar cvf /backup/mysql_backup.tar /var/lib/mysql

方法三:使用自动化备份脚本

创建 backup.sh 脚本:

#!/bin/bash

# 定义变量
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
MYSQL_CONTAINER="<mysql_container_name>"
MYSQL_USER="root"
MYSQL_PASSWORD="<password>"
MYSQL_DATABASE="wordpress"
WORDPRESS_CONTAINER="<wordpress_container_name>"

# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE

# 备份数据库
docker exec $MYSQL_CONTAINER mysqldump -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_DIR/$DATE/wordpress_db.sql

# 备份 WordPress 文件
docker run --rm --volumes-from $WORDPRESS_CONTAINER -v $BACKUP_DIR/$DATE:/backup ubuntu tar czvf /backup/wordpress_files.tar.gz /var/www/html

echo "Backup completed at $BACKUP_DIR/$DATE"

方法四:使用 Docker 备份工具

  1. Docker 卷备份工具

    docker run --rm -v <volume_name>:/volume -v /path/to/backup:/backup loomchild/volume-backup backup <archive_name>
    
  2. 使用 Duplicati

    • 运行 Duplicati 容器并配置定期备份

恢复方法

恢复 WordPress 文件

docker run --rm --volumes-from <wordpress_container_name> -v /path/to/backup:/backup ubuntu bash -c "rm -rf /var/www/html/* && tar xvf /backup/wordpress_files.tar.gz -C /var/www/html --strip 1"

恢复 MySQL 数据库

cat /path/to/backup/wordpress_db.sql | docker exec -i <mysql_container_name> mysql -u root -p<password> wordpress

最佳实践建议

  1. 定期备份:设置 cron 任务定期执行备份脚本
  2. 异地备份:将备份文件复制到远程服务器或云存储
  3. 验证备份:定期测试备份文件是否可恢复
  4. 版本控制:保留多个时间点的备份
  5. 敏感信息:确保备份文件中的密码等敏感信息安全

您可以根据实际需求选择最适合的备份方案。对于生产环境,建议采用自动化备份方案并定期测试恢复流程。