Auto-sync: 2026-04-21 16:03

This commit is contained in:
2026-04-21 16:03:27 +08:00
parent b3b6be6114
commit 914c8f6925
42 changed files with 3923 additions and 1592 deletions

View File

@@ -1,53 +1,129 @@
---
title: 如何传输 Docker images 并且在另一个 Docker 安装
source:
author: shenwei
published:
created: 2025-03-06
description: 从工作笔记本将 Docker 镜像传输到 Synology NAS Docker 的完整操作流程
tags: [docker, nas, synology, home-office]
---
# 如何传输 Docker images 并且在另一个 Docker 安装
## Source File
- [[raw/Home Office/如何传输Docker images 并且在另一个Docker安装.md]]
## Metadata
- **Author**: shenwei
- **Created**: 2025-03-06
- **Tags**: docker, nas, synology
## Summary
本文介绍了如何将 Docker 镜像从一台设备传输到另一台设备并导入 Docker 的完整操作流程,适用于在没有网络连接或网络受限的环境下迁移 Docker 镜像
Docker 镜像在不同主机之间的离线传输方法,使用 `docker save``docker load` 命令实现无需 registry 的镜像迁移。典型场景:将工作笔记本上的 Docker 镜像传输到 Synology NAS 的 Docker 环境
## Key Points
## Core Commands
### 导出 Docker 镜像
在源设备上,通过 `docker save` 命令将镜像打包成 tar 文件:
```docker
### 导出镜像(源设备)
```bash
# 拉取镜像(如需要)
docker pull image_name:tag
# 打包镜像为 tar 文件
docker save -o images.tar image_name:tag
# 或打包多个镜像
docker save -o images.tar image1:tag image2:tag
```
### 导入镜像(目标设备)
```bash
docker load < images.tar
```
## Step-by-Step Guide
### 步骤 1在源设备打包镜像
在工作笔记本(已安装 Docker Desktop使用 `docker save` 命令将镜像打包成 TAR 文件:
```bash
# 拉取镜像(如需要)
docker pull xiaoyaliu/alist
# 打包镜像为 tar 文件
docker save -o xiaoya.tar xiaoyaliu/alist
```
### 导入 Docker 镜像
在目标设备上,通过 `docker load` 命令将 tar 文件导入:
```docker
### 步骤 2传输 TAR 文件
将生成的 `xiaoya.tar` 文件上传到 Synology NAS 的文件系统中(通过 SMB/NFS 等方式)。
### 步骤 3在 NAS 导入镜像
通过 SSH 连接到 NAS运行 `docker load` 命令导入镜像:
```bash
# 进入 tar 文件所在目录
cd /volume1/docker/images
# 导入镜像
docker load < xiaoya.tar
```
### 步骤 4验证
```bash
# 查看镜像列表
docker images
# 在 NAS 的 Container Manager 界面中查看镜像列表
```
## Alternative Methods
### 方法二:使用 docker commit
从容器创建新镜像后再导出:
```bash
# 从容器创建镜像
docker commit container_id new_image_name:tag
# 导出镜像
docker save -o images.tar new_image_name:tag
```
### 方法三:使用 docker export/import
> ⚠️ 注意export/import 操作的是容器文件系统,而非镜像层,不保留 CMD/ENTRYPOINT 等元数据
```bash
# 导出容器
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
- [[Docker]] — 容器化平台
- [[Synology NAS]] — 群晖网络附加存储
- [[Docker Registry]] — Docker 镜像仓库(替代方案)
- [[Container Migration]] — 容器迁移
- [[concepts/Docker-Image.md]]
- [[concepts/Docker-Save.md]]
- [[concepts/Docker-Load.md]]
## Related Entities
- [[xiaoyaliu/alist]] — 阿里云盘列表程序 Docker 镜像
- [[entities/Docker.md]]
- [[entities/Xiaoya.md]]
## Practical Application
## Tags
该方法适用于以下场景:
1. **离线环境**:目标设备无法访问互联网,无法直接 `docker pull`
2. **节省带宽**:大镜像只需下载一次,后续可多次复用
3. **NAS 存储**:将镜像 tar 文件存储在 NAS 上,便于管理
4. **批量部署**:同一镜像需要在多台设备上部署
## See Also
- [[docker-homarr-installation-guide]] — Homarr Docker 安装指南
- [[docker-jellyfin-installation]] — Jellyfin Docker 安装指南
- [[portainer-docker-installation-guide]] — Portainer Docker 安装指南
#docker #synology #nas #home-office #镜像传输