温馨提示×

Docker在Ubuntu上如何备份

小樊
46
2025-08-01 10:31:09
栏目: 智能运维

在Ubuntu上备份Docker容器有多种方法,以下是一些常用的备份和恢复步骤:

备份方法

  1. 使用 docker commit 创建镜像备份

    • 停止并提交容器为镜像:
      docker stop <container_name_or_id>
      docker commit <container_name_or_id> <backup_image_name>
      
    • 导出镜像为tar文件:
      docker save -o <backup_image_name>.tar <backup_image_name>
      
    • 将备份文件传输到安全位置(例如使用 scp):
      scp <backup_image_name>.tar user@remote_host:/path/to/backup/location
      
  2. 使用 docker export 导出容器文件系统

    • 导出容器文件系统为tar文件:
      docker export <container_name_or_id> > <container_backup>.tar
      
    • 将备份文件传输到安全位置:
      scp <container_backup>.tar user@remote_host:/path/to/backup/location
      
  3. 使用 docker checkpoint(适用于Docker 1.12及以上版本)

    • 启用检查点:
      echo 1 > /proc/sys/vm/nr_checkpoint_threads
      
    • 创建检查点:
      docker checkpoint create <backup_image_name> <checkpoint_name>
      
    • 导出检查点:
      docker checkpoint export <checkpoint_name> <checkpoint_name>.tar
      
    • 将备份文件传输到安全位置:
      scp <checkpoint_name>.tar user@remote_host:/path/to/backup/location
      
  4. 使用第三方工具(如 restic

    • 安装 restic
      sudo apt-get update
      sudo apt-get install restic
      
    • 配置 restic
      restic init --repo /path/to/restic/repo
      
    • 备份容器:
      restic backup /path/to/containers/
      
    • 恢复备份:
      restic restore <backup_image_name>
      

恢复方法

  1. 使用 docker load 恢复镜像

    • 加载镜像:
      docker load -i <backup_image_name>.tar
      
    • 启动容器:
      docker run -d --name <new_container_name> <backup_image_name>
      
  2. 使用 docker import 恢复文件系统

    • 导入文件系统:
      cat <container_backup>.tar | docker import - <backup_image_name>
      
    • 启动容器:
      docker run -d --name <new_container_name> <backup_image_name>
      
  3. 使用 docker checkpoint restore 恢复检查点

    • 恢复检查点:
      docker checkpoint restore <checkpoint_name>
      

在进行备份和恢复操作之前,请确保容器已停止,以避免数据不一致。备份文件应存储在安全的位置,以防止数据丢失。使用第三方工具时,请确保其安全性和兼容性。

0