在Docker中,导出镜像通常用于将镜像保存到文件,以便在其他环境中导入使用。以下是导出镜像的两种常见方法:
方法一:使用docker save
导出镜像
docker save
命令用于将一个或多个镜像打包为一个tar文件,保留镜像的所有层和元数据。
步骤:
1. 查看本地镜像列表
bash
docker images
找到需要导出的镜像的REPOSITORY
和TAG
(或IMAGE ID
)。
- 导出镜像到tar文件
bash docker save -o <输出文件名.tar> <镜像名:标签> # 示例: docker save -o myimage.tar ubuntu:20.04
-o
:指定输出文件路径和名称。- 支持同时导出多个镜像:
bash docker save -o myimages.tar ubuntu:20.04 alpine:latest
方法二:使用docker export
导出容器为镜像
docker export
用于将运行中的容器导出为一个tar文件,不保留镜像的历史层(仅保存当前容器的文件系统)。
步骤:
1. 启动并运行容器(如果尚未运行)
bash
docker run -it --name mycontainer ubuntu:20.04 bash
-
导出容器为tar文件
bash docker export -o <输出文件名.tar> <容器名称或ID> # 示例: docker export -o mycontainer.tar mycontainer
-
导入tar文件为新镜像(可选)
bash docker import mycontainer.tar mynewimage:latest
两种方法的区别
docker save |
docker export |
---|---|
导出完整镜像(含所有层和历史) | 仅导出容器的当前文件系统 |
生成的文件较大 | 生成的文件较小(无历史层) |
保留镜像标签和元数据 | 丢失镜像历史,需重新打标签 |
适用于备份镜像 | 适用于创建轻量级基础镜像 |
使用场景
- 迁移镜像:使用
docker save
导出,再用docker load
导入到其他Docker环境。 - 创建轻量级镜像:使用
docker export
导出容器,再用docker import
生成不含历史的新镜像。
如果需要保留完整的镜像信息(如构建历史、标签),推荐使用docker save
。