导入和导出
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
抑制负载输出
📌 特点:
保留原始镜像的所有历史、标签和元数据。
可以跨平台迁移镜像。
适用于离线环境部署。
最后更新于
这有帮助吗?