【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
·

实验环境:aarch64(arm64)Linux操作系统
Docker 镜像导出 & 导入
两种常用方式:
save/load(镜像包,推荐,只打包镜像)、export/import(容器快照,不推荐用于镜像迁移,会丢失历史层、环境变量等)
一、导出镜像(本机操作)
1. 查看镜像名称和tag
docker images

2. docker save 导出为 tar 文件
# 单镜像
docker save -o ragflow_arm64.tar ragflow:arm64
# 多个镜像打包到同一个tar
docker save -o my_images.tar nginx:1.24 redis:7.2
- 方案 A:所有镜像打包进同一个 tar 包(最简单,推荐离线内网)
缺点:如果镜像总量很大,单个 tar 文件会非常巨大
导出全部镜像到 all_images.tar
docker save $(docker images --format "{{.Repository}}:{{.Tag}}") -o all_images.tar
压缩版本(推荐,减少文件体积)
docker save $(docker images --format "{{.Repository}}:{{.Tag}}") | gzip > all_images.tar.gz
- 方案 B:批量导出-每个镜像单独导出一个 tar(稳妥,单个损坏不影响其他)
docker images --format "{{.Repository}}:{{.Tag}}" | while read img; do
fname=$(echo $img | tr "/:" "_")
echo "正在导出 $img => $fname.tar"
docker save "$img" -o "$fname.tar"
done


-o:输出文件,后面跟文件名- 生成的
.tar文件拷贝到另一台电脑
⚠️ 不要用
docker export!export 是导出正在运行/停止的容器,不是镜像,导入后会丢失镜像元数据。
二、另一台电脑导入镜像
把 tar 文件传到目标机器后执行 load:
docker load -i nginx_1.24.tar
-i指定tar包
导入完成后验证:
docker images
就能看到导入好的镜像,直接 docker run 使用。
三、常用补充命令
导出并压缩(节省传输空间,大镜像推荐)
# 导出+gzip压缩
docker save nginx:1.24 | gzip > nginx_1.24.tar.gz
导入压缩包:
gzip -dc nginx_1.24.tar.gz | docker load
重命名镜像(导入后tag丢失时)
有时候导入后只有镜像ID,没有名字标签:
docker tag <镜像ID> nginx:1.24
save VS export 简单对比
| 命令 | 对象 | 特点 | 适用场景 |
|---|---|---|---|
docker save | 镜像 | 保留所有层、tag、环境变量、历史 | 跨机器迁移镜像 ✅ |
docker export | 容器 | 扁平化快照,丢失镜像历史/元数据 | 备份容器文件系统 ❌ |
四、离线内网机器小提示
目标机器必须安装相同/兼容版本的Docker,否则load可能报错;
如果是飞腾+银河麒麟这类arm64信创机器,导出镜像时要注意架构:
在x86机器导出的镜像,不能直接在arm机器load,需要提前build对应架构镜像。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)