linux下批量导出导入docker镜像离线包脚本 —— 筑梦之路

实现原理

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"

猜你喜欢

转载自blog.csdn.net/qq_34777982/article/details/134418578