Hello! 欢迎来到小浪云!


CentOS Docker如何备份与恢复


centos系统下docker数据备份与恢复方法详解

本文介绍几种在centos系统中利用docker进行数据备份和恢复的实用方法,涵盖mongodb数据库和文件/目录的备份与恢复。 所有操作前请确保拥有相应权限,并建议在业务低峰期进行操作,以最大限度地减少对系统的影响。

方法一:使用mongodump和mongorestore备份与恢复MongoDB数据库

此方法适用于MongoDB数据库的备份与恢复。

  1. 备份:

    • 进入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目录存在)
  2. 恢复:

    • 将备份文件复制到容器: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容器中的数据卷。

  1. 备份:

    • 创建数据卷容器:docker run –name data-volume -itd –volumes-from centos /bin/bash (请替换为您的容器名称)
    • 在容器内创建备份文件(例如:touch lucky.txt)。 这只是示例,实际操作中需要根据您的数据进行调整。
    • 退出容器并复制备份文件到宿主机:docker cp data-volume:/lucky.txt /backup (请确保/backup目录存在)
  2. 恢复:

    • 创建新的容器并挂载数据卷:docker run –name restore-container –volumes-from data-volume -itd centos /bin/bash
    • 将备份文件复制到容器:docker cp /backup/lucky.txt restore-container:/lucky.txt

方法三:使用tar命令备份与恢复文件或目录

此方法适用于备份和恢复文件或目录。

  1. 备份:

    • 创建备份目录: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): 这部分需要根据您的需求设置定时任务。

  2. 恢复:

    • 解压备份文件到指定位置:tar xvf /backup/backup.tar -C /path/to/restore

重要提示: 以上所有方法都需要替换占位符为您的实际值。 请务必仔细检查命令和路径,避免数据丢失。 此外,建议定期测试备份和恢复流程,确保其有效性。 为了数据安全,请考虑将备份数据存储到安全的外部存储设备或云存储服务中。

相关阅读