#!/bin/bash
# 获取当前工作目录并设置为导出路径
export_dir="$(pwd)/docker_imgs"
# 创建导出根目录
mkdir -p "$export_dir"
# 获取所有镜像的仓库和标签
image_names=$(docker images --format "{{.Repository}}:{{.Tag}}")
# 检查是否有镜像
if [ -z "$image_names" ]; then
echo "没有找到Docker镜像,脚本终止。"
exit 1
fi
# 循环导出每个镜像
for image_name in $image_names; do
# 提取仓库名和标签
repository=$(echo "$image_name" | cut -d: -f1) # 获取仓库名
tag=$(echo "$image_name" | cut -d: -f2) # 获取标签
# 判断仓库名是否包含 '/'
if [[ "$repository" == *"/"* ]]; then
# 获取最后一个 '/' 之前的部分作为目录层级
repo_dir=$(echo "$repository" | sed 's/\(.*\)\/.*/\1/')
# 获取最后一个 '/' 之后的部分作为镜像名称
image_name_only=$(echo "$repository" | sed 's/.*\///')
# 将仓库名称中的 '/' 替换为目录分隔符
repo_path="$export_dir/$repo_dir"
# 创建目录结构
mkdir -p "$repo_path"
# 生成导出文件名,使用 -- 作为分隔符
output_file="$repo_path/$image_name_only--$tag.tar"
else
# 如果仓库名没有 '/',则直接作为镜像名称
repo_path="$export_dir"
image_name_only="$repository"
# 生成导出文件名,使用 -- 作为分隔符
output_file="$repo_path/$image_name_only--$tag.tar"
fi
# 导出镜像
echo "正在导出镜像: $image_name"
if docker save -o "$output_file" "$image_name"; then
echo "成功导出: $image_name 到 $output_file"
else
echo "导出失败: $image_name"
fi
done
echo "所有镜像导出过程完成!"
docker-20.10.7-linux-x86-64
需积分: 0 114 浏览量
更新于2025-01-14
收藏 84.48MB ZIP 举报
安装包、配置、脚本
docker 文件包:docker-20.10.7
docker compose 文件包:docker-compose-linux-x86_64
Linux 系统服务配置文件:docker.service
一键安装脚本:docker_install.sh
一键卸载脚本:docker_uninstall.sh
镜像导出脚本工具:docker_imgs_exp.sh
镜像导入脚本工具:docker_imgs_imp.sh


鲜活的人生
- 粉丝: 65
最新资源
- Android Course Work-移动应用开发资源
- python教案.pdf
- 网络技术及应用课件电子教案课件整套教学课件.pptx
- 本科毕业论文:LDPC码的编译码算法研究.pdf
- 网络营销教案完整版讲义.doc
- 史丰收速算法是以史丰收教授的名字命名的.pdf
- 数学教案-小数的连除、除加、除减混合运算和简便算法.docx
- 泸州市十郎区块链同城网人事管理系统.doc
- 项目管理理论的重大科技模式研究.doc
- 自动化生产实习心得体会.docx
- 银行软件测试面试题目.docx
- 学校网络规划投标书.doc
- 网络课程设计标准市公开课一等奖百校联赛优质课金奖名师赛课获奖课件.ppt
- 陕西省项目管理师报考条件.docx
- 使用正版软件自查报告.docx
- 武汉大学网络营销().pptx