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
  1. 把上面内容保存为 save_images.sh
  2. 执行 chmod +x save_images.sh && ./save_images.sh
  3. 所有镜像单独 tar 包存入 docker_images 文件夹

下载 / 传输打包好的文件

  1. Windows 用 Xshell / FinalShell:直接拖拽下载当前目录 .tar / .tar.gz 文件
  2. 命令行远程下载(另一台机器拉取)
# scp 示例
scp root@源服务器 IP:/路径/my_images.tar.gz ./
  1. U 盘 / 移动硬盘:直接拷贝文件离线转移
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐