要将备份压缩包还原并重新导入到Docker中,请按以下步骤操作:
1. 停止正在运行的容器
docker-compose -f docker-compose.yml down
2. 提取备份文件
找到要还原的备份文件(位于./backups
目录,格式为ragflow-backup-YYYY-MM-DDTHH-MM-SS.tar.gz
),并解压:
mkdir -p restore_temp
tar -xzf ./backups/ragflow-backup-YYYY-MM-DDTHH-MM-SS.tar.gz -C restore_temp
3. 删除旧的数据卷(可选,谨慎操作)
如果需要完全替换现有数据:
docker volume rm ragflow_esdata01 ragflow_mysql_data ragflow_minio_data ragflow_redis_data
4. 重新创建数据卷
docker volume create ragflow_esdata01
docker volume create ragflow_mysql_data
docker volume create ragflow_minio_data
docker volume create ragflow_redis_data
5. 使用临时容器还原数据
# 还原Elasticsearch数据
docker run --rm -v ragflow_esdata01:/data -v $(pwd)/restore_temp/backup/elasticsearch:/backup alpine sh -c "rm -rf /data/* && cp -a /backup/. /data/"
# 还原MySQL数据
docker run --rm -v ragflow_mysql_data:/data -v $(pwd)/restore_temp/backup/mysql:/backup alpine sh -c "rm -rf /data/* && cp -a /backup/. /data/"
# 还原Minio数据
docker run --rm -v ragflow_minio_data:/data -v $(pwd)/restore_temp/backup/minio:/backup alpine sh -c "rm -rf /data/* && cp -a /backup/. /data/"
# 还原Redis数据
docker run --rm -v ragflow_redis_data:/data -v $(pwd)/restore_temp/backup/redis:/backup alpine sh -c "rm -rf /data/* && cp -a /backup/. /data/"
6. 清理临时文件
rm -rf restore_temp
7. 重新启动服务
docker-compose -f docker-compose.yml up -d
注意:请确保还原操作在数据卷路径正确且服务停止的情况下进行,以避免数据冲突或损坏。