在Docker中导入和加载有什么区别?

我了解export (对于容器)和save (对于图像)之间的区别。 但在一天结束时,保存或导出产生的压缩包应当用作图像

那么为什么有两个命令从tarball中创build一个映像?

docker save将确实产生一个tarball, 与所有父层,所有标签+版本。

docker export也产生一个tarball,但没有任何图层/历史。

当人们想要“扁平化”一个图像时 ,经常使用它,如Thomas Uhrig的 “ 展开Docker容器或图像 ” 所示 :

 docker export <CONTAINER ID> | docker import - some-image-name:latest 

但是,一旦这些tarballs被生产,加载/import在那里:

  • docker import一个 甚至不是图像的压缩包中创build一个图像(只是您想要导入为图像的文件系统)

创build一个空的文件系统映像并导入tarball的内容

  • docker load创build可能从一个tar的存储库的多个图像(因为docker save可以保存在一个tarball中的多个图像)。

从文件或标准inputstream加载一个tar对象库