在运维工作中,如何批量将当前目录下所有的 .tar 镜像文件通过 docker load -i 导入到本地 Docker 环境中,并显示进度和结果。

你可以使用以下 Shell 脚本,批量将当前目录下所有的 .tar 镜像文件通过 docker load -i 导入到本地 Docker 环境中,并显示进度和结果。


✅ 脚本功能:

  • 自动查找当前目录下所有 .tar 文件
  • 逐个执行 docker load -i xxx.tar
  • 显示成功/失败状态
  • 跳过非文件或非 .tar 文件
  • 支持中文提示和日志输出

📜 批量导入镜像脚本(load_images.sh

#!/bin/bash# 脚本名称: load_images.sh
# 功能: 批量导入 Docker 镜像 tar 包
# 作者: Assistant
# 日期: $(date +%Y-%m-%d)echo "=========================================="
echo "    开始批量导入 Docker 镜像 (docker load)"
echo "    当前时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="# 定义统计变量
success_count=0
fail_count=0
total_count=0# 查找所有 .tar 文件
for tar_file in *.tar; do# 检查文件是否存在(防止无匹配时原样输出 *.tar)if [ ! -f "$tar_file" ]; thenecho "⚠️  当前目录没有找到任何 .tar 文件。"exit 0fi# 检查是否为普通文件if [ -f "$tar_file" ]; thentotal_count=$((total_count + 1))echoecho "📦 正在导入: $tar_file"# 执行 docker loadif docker load -i "$tar_file" > /tmp/docker_load_tmp.log 2>&1; thenecho "✅ 成功导入: $tar_file"success_count=$((success_count + 1))elseecho "❌ 导入失败: $tar_file"echo "   错误信息:"cat /tmp/docker_load_tmp.log | sed 's/^/   | /'fail_count=$((fail_count + 1))fifi
done# 删除临时日志文件
rm -f /tmp/docker_load_tmp.logecho
echo "=========================================="
echo "📊 导入完成 summary:"
echo "   总共文件数: $total_count"
echo "   成功: $success_count"
echo "   失败: $fail_count"
echo "=========================================="# 如果有失败,给出提示
if [ $fail_count -gt 0 ]; thenecho "💡 建议检查:"echo "   - 是否已安装 Docker (systemctl status docker)"echo "   - 是否有权限 (可尝试 sudo)"echo "   - 文件是否损坏 (file *.tar)"exit 1
fiexit 0

🔧 使用方法:

  1. 将上述脚本保存为 load_images.sh
vim load_images.sh
# 粘贴内容后保存
  1. 添加可执行权限
chmod +x load_images.sh
  1. 运行脚本(确保你在存放 .tar 镜像的目录中)
./load_images.sh

⚠️ 如果你没有 Docker 权限,可能需要使用 sudo

sudo ./load_images.sh

🖼️ 示例输出:

==========================================开始批量导入 Docker 镜像 (docker load)当前时间: 2025-10-13 11:30:00
==========================================📦 正在导入: alarm-handler-v3.4.0_20250725104119.tar
✅ 成功导入: alarm-handler-v3.4.0_20250725104119.tar📦 正在导入: algorithm-capture-v3.4.0_20250725104119.tar
✅ 成功导入: algorithm-capture-v3.4.0_20250725104119.tar...==========================================
📊 导入完成 summary:总共文件数: 18成功: 18失败: 0
==========================================

💡 补充建议:

  • 可以用 docker images 验证是否全部加载成功。
  • 若文件较多或较大,导入过程可能需要几分钟,请耐心等待。
  • 如需加速,可考虑并行导入(不推荐,容易出错),当前为安全串行方式。