自动下载镜像并导出到目录

#!/bin/bash

# 定义镜像列表
IMAGES=(
    "nginx:latest"
)

# 定义目标目录
TARGET_DIR="download-images"

# 创建目标目录
mkdir -p "${TARGET_DIR}"
echo "创建目录: ${TARGET_DIR}"

# 遍历镜像列表,拉取并导出
for image in "${IMAGES[@]}"; do
    # 拉取镜像
    echo "开始拉取镜像: ${image}"
    docker pull "${image}"
    
    # 提取镜像名称作为文件名(替换特殊字符)
    filename=$(echo "${image}" | sed 's/[:\/]/_/g').tar
    filepath="${TARGET_DIR}/${filename}"
    
    # 导出镜像
    echo "开始导出镜像到: ${filepath}"
    docker save "${image}" -o "${filepath}"
    
    if [ $? -eq 0 ]; then
        echo "成功导出: ${image}"
    else
        echo "导出失败: ${image}" >&2
    fi
    
    echo "-------------------------"
done

echo "所有镜像处理完成!导出文件保存在: $(pwd)/${TARGET_DIR}"