VM映像和Docker映像有什么区别?

Docker和虚拟机的映像是否存在差异?除了图像格式,我在任何地方都找不到任何信息。请注释掉图像大小,实例创建时间,捕获时间等内容。谢谢!

回答:

这些是我可以列出的docker和VM映像之间的一些区别:

我们通常从基本映像开始,然后进行更改,然后使用docker提交这些更改,然后创建一个映像。该图像仅包含与基准的差异。当我们要运行图像时,我们还需要基础,它使用分层文件系统在基础之上将图像分层。文件系统将不同的层合并在一起,我们得到了所需的东西,我们只需要运行它即可。由于docker通常基于注册表中的现成映像构建,因此我们很少需要自己“快照”整个操作系统。泊坞窗将操作系统快照到公共映像中的这种能力也使部署在其他泊坞窗主机上变得容易。

虚拟机通常需要几分钟才能启动,但是容器要花费几秒钟,有时甚至不到一秒钟。

Docker映像由层组成。当我们提取或传输图像时,仅检索尚未在缓存中的图层。这意味着,如果我们使用基于同一基本操作系统的多个映像,则仅创建或检索一次基本层。VM映像没有这种灵活性。

我们可以使用docker commit命令。我们可以指定两个标志: -m-a.-m

标志允许我们指定提交消息,就像在版本控制系统上进行提交时一样:

$ sudo docker commit -m "Added json gem" -a "Kate Smith"

0b2616b0e5a8 ouruser/sinatra:v2

4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

在Docker术语中,只读层称为图像。图像永不变。由于Docker使用联合文件系统,因此进程认为整个文件系统都是以读写方式安装的。但是所有更改都进入了最顶层的可写层,并且在下面,只读映像中的原始文件未更改。由于图像不变,因此图像没有状态。

假设我们有一个大小为1GB的容器映像。如果要使用完整VM,则需要1GB乘以所需数量的VM。在docker容器中,我们可以共享1GB的大部分空间;如果您有1000个容器,则假设容器OS都运行相同的OS映像,那么我们可能仍只能为容器OS提供超过1GB的空间。

Docker映像:

bare. The image does not have a container or metadata envelope.

ovf. The OVF container format.

aki. An Amazon kernel image.

ari. An Amazon ramdisk image.

*ami. An Amazon machine image.

VMimages:

  • raw.非结构化磁盘映像格式;如果您的文件没有扩展名,则可能是原始格式
  • vhd VHD磁盘格式,这是VMware,Xen,Microsoft,VirtualBox等虚拟机监视器使用的常见磁盘格式
  • vmdk.许多通用虚拟机监视器支持的通用磁盘格式
  • vdi.由VirtualBox虚拟机监视器和QEMU仿真器支持
  • iso.光盘数据内容的存档格式,例如CD-ROM。
  • qcow2.由QEMU仿真器支持,该仿真器可以动态扩展并支持“写时复制”
  • aki. Amazon内核映像。
  • ari.Amazon ramdisk映像。
  • ami. Amazon机器映像。

以上是 VM映像和Docker映像有什么区别? 的全部内容, 来源链接: utcz.com/qa/421128.html

回到顶部