【原创实践】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
相关推荐
小p21 小时前
docker学习: 2. 构建镜像Dockerfile
docker
小p2 天前
docker学习: 1. docker基本使用
docker
蝎子莱莱爱打怪2 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀2 天前
Docker部署Nacos
docker·容器
缓解AI焦虑2 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
1candobetter2 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
呉師傅3 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒3 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器