centos

CentOS上Docker容器的备份与恢复

小樊
45
2025-07-18 15:51:32
栏目: 智能运维

在CentOS系统上备份和恢复Docker容器可以通过以下几种方法实现:

备份Docker容器

  1. 使用 docker commit 命令

    • 停止容器:docker stop <container_name_or_id>
    • 提交容器为新镜像:docker commit <container_name_or_id> <backup_image_name>
    • 导出镜像:docker save <backup_image_name> > <backup_image_name>.tar
  2. 使用 docker export 命令

    • 导出容器文件系统:docker export <container_name_or_id> > <container_name_or_id>.tar
    • 恢复容器:先创建一个基于相同镜像的新容器,然后将导出的tar文件内容导入到这个新容器中。
      docker run -d --name <new_container_name> <image_name>
      cat <container_name_or_id>.tar | docker import - <new_image_name>
      
  3. 使用 docker checkpointdocker restore(适用于Docker 1.13及以上版本)

    • 启用检查点:
      echo 1 > /proc/sys/vm/nr_checkpoint_threads
      
    • 创建检查点:
      docker checkpoint create <container_id_or_name> <checkpoint_name>
      
    • 恢复检查点:
      docker restore <checkpoint_name>
      

恢复Docker容器

  1. 从备份文件恢复单个容器

    • 使用 docker import 命令从tar归档文件创建一个新的镜像。
      cat <backup_file.tar> | docker import - <new_image_name>
      
    • 使用 docker run 命令从新创建的镜像启动一个容器。
      docker run -d --name <new_container_name> <new_image_name>
      
  2. 从备份文件恢复所有容器

    • 遍历所有备份文件,使用 docker importdocker run 命令恢复每个容器。
      for file in *.tar; do
          image_name=$(basename "$file" .tar)
          new_image_name="${image_name}_restored"
          cat "$file" | docker import - "$new_image_name"
          docker run -d --name "${image_name}_restored" "$new_image_name"
      done
      
  3. 恢复Docker镜像

    • 遍历所有备份文件,使用 docker load 命令加载镜像。
      for file in *.tar; do
          docker load < "$file"
      done
      
  4. 恢复Docker卷

    • 遍历所有备份文件,使用 docker volume createdocker cp 命令恢复卷。
      for file in *.json; do
          volume_name=$(basename "$file" .json)
          new_volume_name="${volume_name}_restored"
          docker volume create "$new_volume_name"
          docker cp "${volume_name}_backup.json":/var/lib/docker/volumes/"$volume_name"/_data "$new_volume_name"
      done
      

注意事项

通过以上方法,你可以在CentOS系统中有效地备份和恢复Docker容器。选择适合你需求的方法进行操作即可。

0
看了该问题的人还看了