Docker 镜像打包导出(离线迁移)完整方案
·
Docker 镜像打包导出(离线迁移)完整方案
若需将本地 Docker 镜像打包成 tar 归档文件,可使用 docker save 命令。之后可将该文件拷贝至其他机器,通过 docker load 命令恢复镜像。
方式一:将所有镜像打包至单个压缩文件(最简单)
1. 打包 + 压缩(省磁盘空间)
# 打包所有带标签镜像,生成压缩包
docker save $(docker images --format "{{.Repository}}:{{.Tag}}" | grep -v "<none>") | gzip > all_docker_images.tar.gz
执行完成当前目录生成 all_docker_images.tar.gz,包含截图里全部镜像。
2. 其他机器恢复导入
gunzip -c all_docker_images.tar.gz | docker load
方式二:仅打包截图中的指定镜像(按需选择,推荐)
第一步:整理全部镜像全名(直接复制整条命令执行)
docker save -o my_images.tar \
apache/kafka:3.8.0 \
busybox:latest \
emqx/emqx:5.8.7 \
gpustack/gpustack:v2.1.2 \
langgenius/dify-api:1.14.2 \
langgenius/dify-plugin-daemon:0.6.1-local \
langgenius/dify-sandbox:0.2.15 \
milvusdb/milvus:v2.6.0 \
minio/minio:RELEASE.2025-04-22T22-12-26Z \
nacos/nacos-server:v2.5.1 \
nginx:latest \
nodered/node-red:latest \
ossrs/srs:5 \
postgres:15-alpine \
postgres:18 \
redis:6-alpine \
redis:7.4.8 \
semitechnologies/weaviate:1.27.0 \
tdengine/tdengine:3.3.0.0 \
tdengine/tsdb:3.3.8.4 \
ubuntu/squid:latest \
zlmediakit/zlmediakit:master
会生成 my_images.tar 大包。
可选:打包同时压缩(体积更小)
docker save \
apache/kafka:3.8.0 \
busybox:latest \
emqx/emqx:5.8.7 \
gpustack/gpustack:v2.1.2 \
langgenius/dify-api:1.14.2 \
langgenius/dify-plugin-daemon:0.6.1-local \
langgenius/dify-sandbox:0.2.15 \
milvusdb/milvus:v2.6.0 \
minio/minio:RELEASE.2025-04-22T22-12-26Z \
nacos/nacos-server:v2.5.1 \
nginx:latest \
nodered/node-red:latest \
ossrs/srs:5 \
postgres:15-alpine \
postgres:18 \
redis:6-alpine \
redis:7.4.8 \
semitechnologies/weaviate:1.27.0 \
tdengine/tdengine:3.3.0.0 \
tdengine/tsdb:3.3.8.4 \
ubuntu/squid:latest \
zlmediakit/zlmediakit:master | gzip > my_images.tar.gz
目标服务器导入恢复
# 压缩包导入
gunzip -c my_images.tar.gz | docker load
# 如果是未压缩tar包
docker load -i my_images.tar
方式 3:每个镜像单独打包(便于单独分发)
#!/bin/bash
IMAGES=(
apache/kafka:3.8.0
busybox:latest
emqx/emqx:5.8.7
gpustack/gpustack:v2.1.2
langgenius/dify-api:1.14.2
langgenius/dify-plugin-daemon:0.6.1-local
langgenius/dify-sandbox:0.2.15
milvusdb/milvus:v2.6.0
minio/minio:RELEASE.2025-04-22T22-12-26Z
nacos/nacos-server:v2.5.1
nginx:latest
nodered/node-red:latest
ossrs/srs:5
postgres:15-alpine
postgres:18
redis:6-alpine
redis:7.4.8
semitechnologies/weaviate:1.27.0
tdengine/tdengine:3.3.0.0
tdengine/tsdb:3.3.8.4
ubuntu/squid:latest
zlmediakit/zlmediakit:master
)
mkdir -p docker_images
for img in "${IMAGES[@]}"; do
fname=$(echo $img | tr '/' '_' | tr ':' '_').tar
echo "正在打包 $img -> docker_images/$fname"
docker save -o docker_images/$fname $img
done
- 把上面内容保存为
save_images.sh - 执行
chmod +x save_images.sh && ./save_images.sh - 所有镜像单独 tar 包存入
docker_images文件夹
下载 / 传输打包好的文件
- Windows 用 Xshell / FinalShell:直接拖拽下载当前目录
.tar/.tar.gz文件 - 命令行远程下载(另一台机器拉取)
# scp 示例
scp root@源服务器 IP:/路径/my_images.tar.gz ./
- U 盘 / 移动硬盘:直接拷贝文件离线转移
更多推荐




所有评论(0)