【原创实践】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
相关推荐
三言老师32 分钟前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
attitude.x1 小时前
Cursor+GitOps:自动化运维新姿势
运维·自动化
数智化管理手记2 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
Shell运维手记3 小时前
ARP 协议超详细讲解(适合网工考试 / 运维理解)
运维·网络·网络协议·智能路由器
西安景驰电子3 小时前
PCIe 授时卡原理及应用
运维·服务器·windows·单片机·嵌入式硬件·fpga开发
程序喵大人4 小时前
【C++进阶】STL容器与迭代器 - 05 map 和 set 为什么按键保持有序
开发语言·c++·容器·迭代器·stl
huainingning5 小时前
华三瘦AP切换为胖AP并配置无线功能
运维·网络·网络协议·tcp/ip
外滩运维专家5 小时前
十几台服务器要改配置,别再一台台 SSH 了
运维
冷莫溪5 小时前
Zabbix——认识及部署Zabbix(基于Rocky9.7)
linux·运维·php·zabbix
风曦Kisaki5 小时前
Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
linux·运维·笔记·docker·云原生·容器·kubernetes