温馨提示×

Linux Docker如何进行备份与恢复

小樊
88
2025-02-16 14:17:42
栏目: 智能运维
Linux服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Linux系统中,使用Docker进行备份和恢复是一个常见的需求。以下是详细的步骤和方法:

备份Docker容器

  1. 备份单个容器

    • 使用docker commit命令将容器的当前状态保存为一个新的镜像。
      docker commit <container_id> <backup_image_name>
      
    • 使用docker export命令将容器的文件系统导出为一个tar归档文件。
      docker export <container_id> > <backup_file.tar>
      
  2. 备份所有容器

    • 使用docker ps -a列出所有容器(包括停止的)。
    • 对每个容器执行docker export命令,并将输出保存到不同的文件中。
      docker ps -a | awk '{print $1}' | while read container_id; do
        docker export $container_id > "${container_id}_backup.tar"
      done
      
  3. 备份Docker镜像

    • 使用docker images列出所有镜像。
    • 对每个镜像执行docker save命令,并将输出保存到不同的文件中。
      docker images | awk '{print $3}' | while read image_id; do
        docker save $image_id > "${image_id}_backup.tar"
      done
      
  4. 备份Docker卷

    • 使用docker volume ls列出所有卷。
    • 对每个卷执行docker volume inspect命令,并将输出保存到文件中。
      docker volume ls | awk '{print $1}' | while read volume_name; do
        docker volume inspect $volume_name > "${volume_name}_backup.json"
      done
      

恢复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
      

注意事项

  • 备份和恢复过程中,确保Docker服务正在运行。
  • 备份文件应存储在安全的位置,以防止数据丢失。
  • 恢复过程中,可能需要根据实际情况调整容器配置和网络设置。

通过以上步骤,你可以有效地备份和恢复Docker容器、镜像和卷。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何备份Linux上MinIO的数据

0