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,39 +1,76 @@
---
title: "Docker Save"
title: Docker Save
type: concept
tags: [docker, image, export]
sources: [docker-images-transfer-guide, 如何传输Docker-images-并且在另一个Docker安装]
last_updated: 2026-04-17
tags: [docker, container, image-transfer]
last_updated: 2026-04-21
---
## Summary
Docker Save 是 Docker 命令行工具的导出命令,用于将一个或多个镜像打包成 tar 归档文件,便于离线传输和备份。
# Docker Save
## Definition
将 Docker 镜像导出为 tar 格式归档文件的命令。
## Command Syntax
`docker save` 是 Docker CLI 命令,用于将一个或多个镜像导出为 tar 归档文件(`.tar`),实现镜像的离线存储和传输。
## Syntax
```bash
docker save -o <output_file.tar> <image_name>[:<tag>]
docker save [OPTIONS] IMAGE [IMAGE...]
```
## Examples
### Options
| Option | Description |
|--------|-------------|
| `-o, --output` | 指定输出文件名(默认输出到 stdout |
## Usage Examples
### 基本用法
```bash
# 导出单个镜像
docker save -o xiaoya.tar xiaoyaliu/alist
docker save -o nginx.tar nginx:latest
# 导出多个镜像
docker save -o images.tar image1:image2
docker save -o images.tar nginx:latest redis:alpine postgres:15
# 使用管道传输
docker save nginx:latest | ssh user@remote-host 'docker load'
```
## Use Cases
- 离线环境镜像迁移
- 镜像备份和归档
- 跨网络隔离环境传输
### 典型工作流:将镜像从开发机传输到 NAS
```bash
# 在开发机上
docker save -o xiaoya.tar xiaoyaliu/alist:latest
# 将 xiaoya.tar 复制到 NAS通过 SMB/SCP
scp xiaoya.tar nas:/volume1/docker/images/
# 在 NAS 上
docker load < xiaoya.tar
```
## Related Concepts
- [[Docker-Image]]:被导出的镜像对象
- [[Docker-Load]]:对应的导入命令
## Connections
- [[Docker-Load]]:对应的导入命令
- [[Docker-Image]]:被导出的对象
- [[Docker-TAR-Archive]]:生成的归档文件格式
## Relationships
- [[Docker-Image]] ← 导出为 ← [[Docker-Save]]
- [[Docker-Save]] → 输出 → [[Docker-TAR-Archive]]
## Key Points
1. **保留镜像层**:完整保留镜像的分层结构
2. **保留元数据**:包括 CMD、ENTRYPOINT、ENV、LABEL 等
3. **可移植性**:生成的 tar 文件可在任何 Docker 环境中导入
4. **适用场景**:离线环境迁移、备份、镜像分发
## Notes
- 文件大小可能较大(包含所有镜像层)
- 多次 save 同一镜像会重复包含所有层
- 可配合 `docker load` 实现完整的镜像迁移闭环