docker 镜像导出-


在Docker中,导出镜像通常用于将镜像保存到文件,以便在其他环境中导入使用。以下是导出镜像的两种常见方法:

方法一:使用docker save导出镜像

docker save命令用于将一个或多个镜像打包为一个tar文件,保留镜像的所有层和元数据。

步骤: 1. 查看本地镜像列表
bash docker images 找到需要导出的镜像的REPOSITORYTAG(或IMAGE ID)。

  1. 导出镜像到tar文件
    bash docker save -o <输出文件名.tar> <镜像名:标签> # 示例: docker save -o myimage.tar ubuntu:20.04
  2. -o:指定输出文件路径和名称。
  3. 支持同时导出多个镜像:
    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

  1. 导出容器为tar文件
    bash docker export -o <输出文件名.tar> <容器名称或ID> # 示例: docker export -o mycontainer.tar mycontainer

  2. 导入tar文件为新镜像(可选)
    bash docker import mycontainer.tar mynewimage:latest

两种方法的区别

docker save docker export
导出完整镜像(含所有层和历史) 仅导出容器的当前文件系统
生成的文件较大 生成的文件较小(无历史层)
保留镜像标签和元数据 丢失镜像历史,需重新打标签
适用于备份镜像 适用于创建轻量级基础镜像

使用场景

  • 迁移镜像:使用docker save导出,再用docker load导入到其他Docker环境。
  • 创建轻量级镜像:使用docker export导出容器,再用docker import生成不含历史的新镜像。

如果需要保留完整的镜像信息(如构建历史、标签),推荐使用docker save