Auto-sync: 2026-04-21 16:03
This commit is contained in:
@@ -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 #镜像传输
|
||||
|
||||
Reference in New Issue
Block a user