脚本批量导出 docker 镜像


共计 633 个字符,预计需要花费 2 分钟才能阅读完成。

由于经常需要导出多个 docker 镜像,所以想着用脚本来解决一次导出很多镜像的问题。

按自己需要将镜像导出为 tar 包,命名方式为 镜像名-标签名.tar。如果不传参数则默认使用 docker images | grep service 查找并导出镜像,如果传递参数则使用 docker images | grep 传参命令。

#!/bin/bash

# 确保 /tmp/images 目录存在
mkdir -p /tmp/images

# 检查是否有参数传入,如果有则使用参数,否则默认使用 'service'
search_term="${1:-service}"

# 获取镜像列表并过滤出包含 '$search_term' 的行
images=$(docker images | grep "$search_term")

# 遍历每一行镜像信息
echo "$images" | while read -r line; do
  # 提取镜像名和标签
  image_name=$(echo "$line" | awk '{print $1}')
  tag=$(echo "$line" | awk '{print $2}')

  # 构建保存文件的完整路径和文件名
  save_path="/tmp/images/${image_name}-${tag}.tar"

  # 保存镜像到指定路径
  echo "Saving image $image_name:$tag to $save_path"
  docker save -o "$save_path" "$image_name":"$tag"
done

echo "所有镜像导出完成!"

Tips:清朝云网络工作室

阅读剩余
THE END