在Docker中保存和导出有什么区别?
我和Docker玩了几天,我已经做了一些图片(这真的很有趣!)。 现在我想坚持我的工作,来到save
和export
命令,但我不完全理解它们。
在Docker中save
和export
什么区别?
简短的答案是:
save
将获取图像:对于VM或物理服务器,这将是安装.ISO映像或磁盘。 基本的操作系统。
它将打包构建图像所需的所有链的图层和元数据。 然后,您可以将此“已保存”图像链加载到另一个Docker实例中,并从这些图像创建容器。
export
将获取整个容器:就像常规虚拟机的快照。 当然,保存操作系统,也是你做的任何改变,在容器寿命期间写入的任何数据文件。 这个更像是一个传统的备份。
它会给你一个包含你的容器文件系统的平坦的.tar文件。
编辑:因为我的解释可能仍然会导致混淆,我认为重要的是要明白,其中一个命令适用于容器,而另一个命令适用于图像。
必须将图像视为“死亡”或不可变,从其开始的0个或1000个容器不会更改单个字节。 这就是为什么我早些时候与系统安装ISO进行比较。 它可能更接近live-CD。
容器 “启动”图像并在其上添加一个附加图层。 此图层存储容器上的任何更改(创建/更改/删除的文件...)。
保存和导出命令有两个主要区别。
保存命令保存具有历史和元数据的整个图像,但导出命令只导出文件结构(不包括历史和元数据)。 所以导出的tar文件会比保存的文件小一些。
当您使用导出的文件系统创建新映像时,这个新映像将不包含来自Dockerfile的任何USER,EXPOSE,RUN等命令。 只有文件结构会被传送。 因此,当您在Dockerfile中使用提及的关键字时,则无法使用export命令将映像传输到另一台计算机 - 您总是需要使用save命令。
从技术上讲,保存/加载适用于可以是一个或多个图像(也称为图层)的存储库。 图像是回购协议中的单个图层。 最后,容器是一个实例化的图像(运行与否)。
链接地址: http://www.djcxy.com/p/18263.html上一篇: What is the difference between save and export in Docker?
下一篇: How can I add a volume to an existing Docker container?