1. 编写镜像清单文件中每行保存一个镜像地址
2. 通过循环遍历镜像清单文件中的内容,实现批量导出导入镜像
文件名/home/image_list.txt
- centos:7.9
- ubuntu: 18.04
- nginx:1.24.0-alpine
- openjdk:8-alpine
脚本文件docker-save-images.sh
- #!/bin/bash
- # docker-save-images.sh
- # 批量导出docker镜像,保存为tar.gz
-
- # 指定包含镜像名称的文件
- file_list="/home/image_list.txt"
-
- # 遍历文件列表中的每个镜像名称
- while IFS= read -r image; do
- # 检查镜像是否存在
- if docker images -q "$image" >/dev/null 2>&1; then
- # 导出镜像
- docker save -o "$image.tar.gz" "$image"
-
- # 打印导出成功的消息
- echo "Successfully save image: $image"
- fi
- done < "$file_list"
脚本文件load-docker-images.sh
- #!/bin/bash
- # load-docker-images.sh
- # 批量导入docker离线镜像包tar.gz
-
- # 指定包含镜像文件路径的文本文件
- file_list="/home/file_list.txt"
-
- # 遍历文件列表中的每个文件
- while IFS= read -r file; do
- # 检查文件是否存在且为.tar文件
- if [[ -f "$file" && "${file##*.}" == "tar.gz" ]]; then
- # 加载镜像文件
- docker load -i "$file"
-
- # 打印导入成功的消息
- echo "Successfully load image: $(basename -- "$file" .tar.gz)"
- fi
- done < "$file_list"