#!/bin/bash
# 描述：利用国内镜像源加速拉取，但保留原始镜像名称
# 作者：你的名字
# 日期：$(date +%Y-%m-%d)

# 定义镜像列表文件
IMAGE_LIST="images.txt"
LOG_FILE="pull.log"
FAILED_FILE="failed.txt"

# 清空旧日志
> "$LOG_FILE"
> "$FAILED_FILE"

# 开始拉取
total=$(wc -l < "$IMAGE_LIST")
current=1

echo "===== 开始批量拉取镜像（共 $total 个） ====="
while read -r image; do
  echo "[$current/$total] 拉取镜像: $image"
  
  # 执行拉取命令
  if docker pull $image >> "$LOG_FILE" 2>&1; then
    echo "成功: $image"
  else
    echo "失败: $image" | tee -a "$FAILED_FILE"
  fi
  
  ((current++))
  echo "----------------------------------------"
done < "$IMAGE_LIST"

# 输出统计结果
success=$(grep -c "成功:" "$LOG_FILE")
failed=$(wc -l < "$FAILED_FILE")

echo "===== 拉取完成 ====="
echo "成功: $success 个"
echo "失败: $failed 个"
[[ $failed -ne 0 ]] && echo "查看失败列表: cat $FAILED_FILE"


