导入和导出

Docker 导出和导入镜像的方式有两种,一种是通过容器,另外一种是通过镜像。

通过容器

导出

docker export 容器 > image.tar

# 示例,导出容器为 tar 文件(不包括分层结构)
docker export nginx > nginx.tar

导入

docker import image.tar < <镜像名>:<>

# 示例,会丢失构建历史
docker import image.tar < nginx:latest

📌 特点

  • export 是扁平化导出容器的文件系统,不包含镜像历史记录和分层信息。

  • 导出的大小通常比 save 更小。

  • 得到的是一个新镜像,只有一个图层。

通过镜像

导出

docker image save [OPTIONS] <文件输出路径> <镜像名称>:<标签> [<镜像名称>:<标签>...]
# or
docker save [OPTIONS] <文件输出路径> <镜像名称>:<标签> [<镜像名称>:<标签>...]
选项
描述

-o, --output

写入文件,而不是 STDOUT

API 1.48+ 仅加载给定的平台变体。格式为os[/arch[/variant]](例如linux/amd64

# 导出nginx
docker save -o nginx.tar nginx:latest

# 可以同时将多个镜像打包一个文件
docker save -o images.tar nginx alpine

# 将所有镜像导出到一个压缩包
docker save -o all_images.tar $(docker images -q)

# 导出所有镜像,每个镜像单独一个压缩包
docker images -q | xargs -I {} docker save -o {}.tar {}

# 使用 gzip 将图像保存为 tar.gz 文件,您可以使用 gzip 保存映像文件并使备份更小。
docker save nginx:2.1 | gzip > gninx.tar.gz

导入

docker image load [OPTIONS] <tar文件路径>
选项
描述

从 tar 存档文件读取,而不是从 STDIN 读取

API 1.48+ 仅加载给定的平台变体。格式为os[/arch[/variant]](例如linux/amd64

-q, --quiet

抑制负载输出

📌 特点

  • 保留原始镜像的所有历史、标签和元数据。

  • 可以跨平台迁移镜像。

  • 适用于离线环境部署。

最后更新于

这有帮助吗?