3.5 数据备份和恢复

系列 - 网络与存储配置
目录
实验目标
掌握Docker容器数据备份与恢复的核心技术,学习使用临时容器进行数据迁移,理解容器数据持久化的重要性
实验环境要求
前置条件
- 已完成上一实验中WordPress博客和MySQL数据库容器的部署
- 确保Docker服务正常运行
- 拥有足够的磁盘空间用于备份文件存储
任务一:容器数据备份与导出
1. 验证服务可用性
在开始备份前,请确认服务运行状态:
- 访问博客后台:
http://服务器IP:端口号/admin - 使用管理员账号登录,确认数据完整性
- 记录当前文章数量和配置信息,便于后续验证
操作提醒
确认服务正常后,请停止WordPress和MySQL容器,避免备份过程中数据不一致
2. 备份WordPress数据卷
使用Alpine Linux临时容器执行备份操作:
docker run --rm \
-v wordpress_volume:/source:ro \
-v $(pwd):/backup \
alpine tar -czf /backup/wordpress-学号后两位.tar.gz -C /source .
技术详解
命令参数说明:
--rm:容器执行完毕后自动删除,避免残留-v wordpress_volume:/source:ro:以只读模式挂载待备份的数据卷-v $(pwd):/backup:将当前目录映射到容器内,用于存储备份文件alpine:使用轻量级Linux发行版作为备份工具载体
tar命令详解:
-c(create):创建新的gz归档文件-z(gzip):使用gzip算法压缩,减少存储空间-f(file):指定输出文件路径-C(change-directory):切换到指定目录后执行打包.:表示打包当前目录下的所有内容
执行流程:
- Alpine容器启动并挂载相关目录
- 进入/source目录(数据卷挂载点)
- 将所有文件打包压缩
- 输出到宿主机当前目录
- 容器自动销毁
3. 备份MySQL数据库
使用相同方法备份数据库数据,备份文件名:mysql-学号后两位.tar.gz
4. 验证备份完整性
- 首先确定两个文件存在
- 再使用
tar -tf 文件名查看备份文件中是否存在数据
5. 备份文件交换
协作环节
- 与指定同学交换备份文件
- 将接收到的文件上传至服务器
- 删除自己的备份文件,仅保留同学的文件
6. 环境清理
停止并删除原有容器
任务二:数据恢复与验证
1. 创建恢复目录并解压数据
# 创建数据恢复目录
mkdir /root/mysql
mkdir /root/wordpress
# 解压备份文件到指定目录
tar -xzf 备份文件名 -C /root/mysql
tar -xzf 备份文件名 -C /root/wordpress
2. 恢复MySQL数据库容器
docker run -d \
--name mysql \
--network 自定义网桥名 \
-v /root/mysql:/var/lib/mysql \
mysql:8.3
3. 恢复WordPress应用
docker run -d \
--name wordpress \
--network 自定义网桥名 \
-p 80:80 \
-v /root/wordpress:/var/www/html \
wordpress
4. 服务状态检查

5. 数据完整性验证
验证清单
- 访问博客首页,确认页面正常显示
- 登录管理后台,验证用户账号可用
- 检查文章列表,确认内容完整





