本文介绍几种在CentOS系统中利用Docker进行数据备份和恢复的实用方法,涵盖MongoDB数据库和文件/目录的备份与恢复。 所有操作前请确保拥有相应权限,并建议在业务低峰期进行操作,以最大限度地减少对系统的影响。
方法一:使用mongodump和mongorestore备份与恢复MongoDB数据库
此方法适用于MongoDB数据库的备份与恢复。
-
备份:
- 进入MongoDB容器:
docker exec -it mongo /bin/bash - 执行备份命令:
mongodump -h 127.0.0.1:27017 -u <用户名> -p <密码> -d <数据库名> -o /dump(请替换<用户名>、<密码>和<数据库名>为您的实际值) - 压缩备份文件:
tar -zcvf test.tar.gz /dump - 退出容器:
exit - 将备份文件复制到宿主机:
docker cp mongo:/dump/test.tar.gz /mnt/docker-data/mongo/dump(请确保/mnt/docker-data/mongo/dump目录存在)
- 进入MongoDB容器:
-
恢复:
- 将备份文件复制到容器:
docker cp /mnt/docker-data/mongo/dump/test.tar.gz mongo:/dump - 进入容器:
docker exec -it mongo /bin/bash - 进入备份目录:
cd /dump - 解压备份文件:
tar -xzvf test.tar.gz - 执行恢复命令:
mongorestore -h 127.0.0.1:27017 -d <数据库名> --dir /dump -u <用户名> -p <密码>(请替换<数据库名>、<用户名>和<密码>为您的实际值)
- 将备份文件复制到容器:
方法二:使用Docker数据卷容器备份与恢复
此方法适用于备份和恢复Docker容器中的数据卷。
-
备份:
- 创建数据卷容器:
docker run --name data-volume -itd --volumes-from <容器名> centos /bin/bash(请替换<容器名>为您的容器名称) - 在容器内创建备份文件(例如:
touch lucky.txt)。 这只是示例,实际操作中需要根据您的数据进行调整。 - 退出容器并复制备份文件到宿主机:
docker cp data-volume:/lucky.txt /backup(请确保/backup目录存在)
- 创建数据卷容器:
-
恢复:
- 创建新的容器并挂载数据卷:
docker run --name restore-container --volumes-from data-volume -itd centos /bin/bash - 将备份文件复制到容器:
docker cp /backup/lucky.txt restore-container:/lucky.txt
- 创建新的容器并挂载数据卷:
方法三:使用tar命令备份与恢复文件或目录
此方法适用于备份和恢复文件或目录。
-
备份:
-
创建备份目录:
sudo mkdir /backup -
创建备份脚本(例如
/path/to/backup.sh):#!/bin/bash tar cvf /backup/backup.tar /path/to/backup
-
设置脚本为可执行:
chmod +x /path/to/backup.sh -
使用crontab设置定时任务(编辑
/etc/crontab或使用crontab -e): 这部分需要根据您的需求设置定时任务。
-
-
恢复:
- 解压备份文件到指定位置:
tar xvf /backup/backup.tar -C /path/to/restore
- 解压备份文件到指定位置:
重要提示: 以上所有方法都需要替换占位符为您的实际值。 请务必仔细检查命令和路径,避免数据丢失。 此外,建议定期测试备份和恢复流程,确保其有效性。 为了数据安全,请考虑将备份数据存储到安全的外部存储设备或云存储服务中。










