2.9 KiB
2.9 KiB
title, source, author, published, created, description, tags
| title | source | author | published | created | description | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| 如何传输 Docker images 并且在另一个 Docker 安装 | shenwei | 2025-03-06 | 从工作笔记本将 Docker 镜像传输到 Synology NAS Docker 的完整操作流程 |
|
如何传输 Docker images 并且在另一个 Docker 安装
Source File
Summary
Docker 镜像在不同主机之间的离线传输方法,使用 docker save 和 docker load 命令实现无需 registry 的镜像迁移。典型场景:将工作笔记本上的 Docker 镜像传输到 Synology NAS 的 Docker 环境。
Core Commands
导出镜像(源设备)
# 拉取镜像(如需要)
docker pull image_name:tag
# 打包镜像为 tar 文件
docker save -o images.tar image_name:tag
# 或打包多个镜像
docker save -o images.tar image1:tag image2:tag
导入镜像(目标设备)
docker load < images.tar
Step-by-Step Guide
步骤 1:在源设备打包镜像
在工作笔记本(已安装 Docker Desktop)上,使用 docker save 命令将镜像打包成 TAR 文件:
# 拉取镜像(如需要)
docker pull xiaoyaliu/alist
# 打包镜像为 tar 文件
docker save -o xiaoya.tar xiaoyaliu/alist
步骤 2:传输 TAR 文件
将生成的 xiaoya.tar 文件上传到 Synology NAS 的文件系统中(通过 SMB/NFS 等方式)。
步骤 3:在 NAS 导入镜像
通过 SSH 连接到 NAS,运行 docker load 命令导入镜像:
# 进入 tar 文件所在目录
cd /volume1/docker/images
# 导入镜像
docker load < xiaoya.tar
步骤 4:验证
# 查看镜像列表
docker images
# 在 NAS 的 Container Manager 界面中查看镜像列表
Alternative Methods
方法二:使用 docker commit
从容器创建新镜像后再导出:
# 从容器创建镜像
docker commit container_id new_image_name:tag
# 导出镜像
docker save -o images.tar new_image_name:tag
方法三:使用 docker export/import
⚠️ 注意:export/import 操作的是容器文件系统,而非镜像层,不保留 CMD/ENTRYPOINT 等元数据
# 导出容器
docker export -o container.tar container_id
# 导入为镜像
docker import container.tar new_image_name:tag
save/load vs export/import
| 特性 | save/load | export/import |
|---|---|---|
| 操作对象 | 镜像层 | 容器文件系统 |
| 保留历史层 | ✅ | ❌ |
| 保留元数据 | ✅ | ❌ |
| 文件大小 | 较大 | 较小 |
| 适用场景 | 镜像迁移 | 容器快照 |
Related Concepts
Related Entities
Tags
#docker #synology #nas #home-office #镜像传输