【原创实践】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
相关推荐
思麟呀3 分钟前
应用层自定义协议与序列化
linux·运维·服务器·网络·c++
Lost_in_the_woods12 分钟前
Java程序员的Linux之路——命令篇
linux·运维·服务器
IpdataCloud13 分钟前
在线IP查询API与本地离线库,速度与安全如何选型?
运维·服务器·网络
志栋智能14 分钟前
超自动化巡检,如何成为业务稳定的“压舱石”?
大数据·运维·网络·人工智能·自动化
困惑阿三18 分钟前
全栈服务器运维终极备忘录
运维·服务器·nginx·pm2
optimistic_chen26 分钟前
【Vue3入门】自定义指令与插槽详解
linux·运维·服务器·vue.js·前端框架·指令
牛奶咖啡1335 分钟前
基于Cobbler的系统自动化安装部署——Cobbler的安装部署实践
linux·运维·服务器·cobbler·cobbler的安装配置·cobbler环境检查问题解决·cobbler中导入系统镜像
mounter62538 分钟前
深度解析 RDMA 技术的里程碑:基于 DMA-BUF 的 P2P 直接访问(GPU Direct RDMA 新姿势)
linux·运维·服务器·网络·p2p·kernel
南山十一少1 小时前
docker的安装及使用
运维·docker·容器
无籽西瓜a1 小时前
Docker 环境下 Redis Lua 脚本部署与执行
redis·docker·lua