【原创实践】Docker 镜像批量导出镜像与导入镜像

1. 批量保存镜像到 .tar 文件

bash 复制代码
#!/bin/bash

# 保存目录
SAVE_DIR=/root/docker_images_backup
mkdir -p $SAVE_DIR

# 获取本地所有镜像列表 (Repository:Tag + IMAGE ID)
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | while read img id; do

    # 如果 TAG 是 <none>,使用 IMAGE ID 代替
    if [[ $img == *"<none>"* ]]; then
        img=$id
    fi

    # 生成文件名,将 / 和 : 替换为 _
    filename=$(echo $img | sed 's/[\/:]/_/g').tar

    echo "Saving $img -> $SAVE_DIR/$filename"

    # 执行 docker save 导出镜像
    docker save -o $SAVE_DIR/$filename $img

done

✅ 功能说明:

  • 自动处理 <none> 标签的镜像。

  • 每个镜像导出为独立 tar 文件,命名格式 REPOSITORY_TAG.tar

  • 方便迁移和备份。


2. 批量加载镜像

bash 复制代码
#!/bin/bash

# 镜像 tar 文件目录
LOAD_DIR=/root/docker_images_backup

# 遍历目录下所有 tar 文件
for tarfile in $LOAD_DIR/*.tar; do
    echo "Loading $tarfile ..."
    docker load -i $tarfile
done

✅ 功能说明:

  • 自动加载目录下所有 .tar 文件到本地 Docker。

  • 可以用于迁移到新服务器或重建环境。


3. 使用示例

  1. 保存镜像:
bash 复制代码
bash save_all_images.sh
  1. 在新服务器加载镜像:
bash 复制代码
bash load_all_images.sh
相关推荐
三言老师1 小时前
K8s集群运行时自动化运维全覆盖落地实操(下)
linux·运维·服务器·网络
艾伦_耶格宇2 小时前
【DOCKER进阶】-3 cgroups
docker·容器·eureka
躺不平的理查德4 小时前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
一直走下去-明5 小时前
centos7无法安装tcpreplay
linux·运维
IT大白鼠5 小时前
n8n工作流自动化平台技术架构与应用价值评估
运维·架构·自动化·n8n
anxiao_m5 小时前
园区数字孪生怎么搭建?主流方案与服务商深度对比
大数据·运维·人工智能
时空无限5 小时前
ubuntu dpkg -l 输出第一列解释
linux·运维·ubuntu
Splashtop高性能远程控制软件6 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop
ITyunwei09877 小时前
技术管理者视角:AI 重构 ITSM 的四个工程化落点
运维·人工智能
core5127 小时前
如何从多架构 Docker 镜像中导出指定的 ARM64 版本
华为·docker·架构·镜像·导出·多架构