97 lines
2.3 KiB
Markdown
97 lines
2.3 KiB
Markdown
---
|
||
title: Docker Load
|
||
type: concept
|
||
tags: [docker, container, image-transfer]
|
||
last_updated: 2026-04-21
|
||
---
|
||
|
||
# Docker Load
|
||
|
||
## Definition
|
||
|
||
`docker load` 是 Docker CLI 命令,用于从 tar 归档文件加载镜像到本地 Docker 镜像存储。与 `docker save` 配合使用,实现镜像的离线迁移。
|
||
|
||
## Syntax
|
||
|
||
```bash
|
||
docker load [OPTIONS]
|
||
```
|
||
|
||
### Options
|
||
|
||
| Option | Description |
|
||
|--------|-------------|
|
||
| `-i, --input` | 指定输入的 tar 文件(默认从 stdin 读取) |
|
||
| `-q, --quiet` | 静默模式,减少输出 |
|
||
|
||
## Usage Examples
|
||
|
||
### 基本用法
|
||
|
||
```bash
|
||
# 从文件加载
|
||
docker load < nginx.tar
|
||
|
||
# 指定文件
|
||
docker load -i images.tar
|
||
|
||
# 静默模式
|
||
docker load -i images.tar -q
|
||
```
|
||
|
||
### 典型工作流:从开发机接收镜像到 NAS
|
||
|
||
```bash
|
||
# 在开发机上
|
||
docker save -o xiaoya.tar xiaoyaliu/alist:latest
|
||
|
||
# 将 xiaoya.tar 复制到 NAS
|
||
scp xiaoya.tar nas:/volume1/docker/images/
|
||
|
||
# 在 NAS 上加载
|
||
docker load < xiaoya.tar
|
||
|
||
# 验证
|
||
docker images | grep xiaoya
|
||
```
|
||
|
||
### 使用 SSH 管道直接传输
|
||
|
||
```bash
|
||
# 在目标机器上执行(镜像从远程机器流式传输)
|
||
ssh user@source-host 'docker save nginx:latest' | docker load
|
||
```
|
||
|
||
## Related Concepts
|
||
|
||
- [[Docker-Save]]:对应的导出命令
|
||
- [[Docker-Image]]:被导入的目标
|
||
- [[Docker-TAR-Archive]]:输入的归档文件格式
|
||
|
||
## Relationships
|
||
|
||
- [[Docker-Image]] ← 导入为 ← [[Docker-Load]]
|
||
- [[Docker-Load]] ← 依赖 ← [[Docker-Save]]
|
||
|
||
## Key Points
|
||
|
||
1. **完整还原**:从 tar 文件完整恢复镜像,包括所有层和元数据
|
||
2. **自动识别**:自动识别 tar 文件中的镜像名称和标签
|
||
3. **可重复导入**:同一镜像可多次导入(会创建重复条目,需配合 `docker rmi`)
|
||
4. **ID 匹配**:如果镜像 ID 已存在,会分配新的 ID
|
||
|
||
## Comparison with Alternatives
|
||
|
||
| 特性 | docker load | docker import |
|
||
|------|-------------|---------------|
|
||
| 数据源 | docker save 输出 | docker export 输出 |
|
||
| 内容 | 完整镜像(含层) | 容器文件系统快照 |
|
||
| 元数据 | 完整保留 | 不保留 |
|
||
| 适用场景 | 镜像迁移 | 容器基础创建 |
|
||
|
||
## Notes
|
||
|
||
- 导入后的镜像默认标签可能为 `<none>:<none>`,需要手动 tag
|
||
- 使用 `docker tag` 命令为导入的镜像设置标签
|
||
- 大镜像加载可能需要较长时间,显示进度条
|