备份还原 本地所有的Docker 镜像并且在另一台机器上还原

2024-09-06 20:36

本文主要是介绍备份还原 本地所有的Docker 镜像并且在另一台机器上还原,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

备份命令 并且显示进度 backup_docker_images.sh

sudo yum install jq
chmod +x backup_docker_images.sh
sudo ./backup_docker_images.sh
#!/bin/bash# 指定备份目录
backup_dir="/app/dockerImageBackup/Images"# 创建备份目录,如果不存在的话
mkdir -p $backup_dir# 获取所有镜像的 ID
image_ids=$(docker images -q)# 计算镜像的总数
total_images=$(echo $image_ids | wc -w)# 初始化进度计数器
current_image=1# 遍历每个镜像
for image_id in $image_ids
do# 获取镜像的所有信息image_info=$(docker inspect $image_id)# 获取镜像的名字和标签image_names=$(echo $image_info | jq -r '.[0].RepoTags | join(",")')# 如果镜像没有名字或标签,尝试从 RepoDigests 获取if [ "$image_names" == "null" ]; thenimage_names=$(echo $image_info | jq -r '.[0].RepoDigests[0]' | cut -d '@' -f1)fi# 使用 ID 作为文件名image_file="$image_id.tar"# 打印开始保存的信息echo "Saving image $current_image of $total_images: $image_file"# 保存镜像到文件docker save $image_id -o "$backup_dir/$image_file"# 保存镜像信息到文件echo $image_info > "$backup_dir/$image_id.json"# 打印完成保存的信息echo "Saved image $current_image of $total_images: $image_file"# 更新进度计数器current_image=$((current_image + 1))
done

还原所有的镜像

tar -czf /path/to/app.tar.gz /app
tar -xzf app.tar.gz -C /app -p


 

chmod +x load_docker_images.sh
sudo ./load_docker_images.sh
#!/bin/bash# 指定备份目录
backup_dir="/app/dockerImageBackup/Images"# 遍历备份目录下的所有 .tar 文件
for tar_file in $backup_dir/*.tar
do# 获取镜像的 IDimage_id=$(basename $tar_file .tar)# 打印开始加载的信息echo "Loading image: $image_id"# 加载镜像docker load -i $tar_file# 打印完成加载的信息echo "Loaded image: $image_id"# 获取镜像的详细信息image_info=$(cat "$backup_dir/$image_id.json")# 获取镜像的名字和标签image_names=$(echo $image_info | jq -r '.[0].RepoTags | join(",")')# 如果镜像没有名字或标签,尝试从 RepoDigests 获取if [ -z "$image_names" ]; thenecho "Image names is null, trying to get from RepoDigests..."image_names=$(echo $image_info | jq -r '.[0].RepoDigests[0]' | cut -d '@' -f1)echo "Image names from RepoDigests: $image_names"fi# 使用 docker tag 为镜像添加名字和标签for image_name in $(echo $image_names | tr "," "\n")dodocker tag $image_id $image_nameecho "Tagged image: $image_id as $image_name"done
done
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

这篇关于备份还原 本地所有的Docker 镜像并且在另一台机器上还原的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143053

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

deepseek本地部署使用步骤详解

《deepseek本地部署使用步骤详解》DeepSeek是一个开源的深度学习模型,支持自然语言处理和推荐系统,本地部署步骤包括克隆仓库、创建虚拟环境、安装依赖、配置模型和数据、启动服务、调试与优化以及... 目录环境要求部署步骤1. 克隆 DeepSeek 仓库2. 创建虚拟环境3. 安装依赖4. 配置模型

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选