当前位置: 首页 > 知识库问答 >
问题:

VM映像和Docker映像之间有什么区别?[副本]

娄鹤轩
2023-03-14

Docker和虚拟机的映像有什么区别吗?除了图像格式,我在任何地方都找不到任何信息。请评论像图像大小,实例创建时间,捕获时间等。谢谢!

共有1个答案

孟安民
2023-03-14

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

1.快照处理在Docker中比VMs更快

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

2.Docker的启动时间比VMs短

一个虚拟机通常需要几分钟的启动时间,而容器需要几秒,有时甚至不到一秒。

4.Docker图像具有更强的可移植性

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

5.Docker提供图像的版本控制

我们可以使用 ;docker commitch ;命令。我们可以指定两个标志: -m 和 ;-a。 ;-m 标志允许我们指定提交消息,就像我们在版本控制系统上使用提交一样:

$ sudo docker commit -m "Added html" target="_blank">json gem" -a "Kate Smith"
0b2616b0e5a8 ouruser/sinatra:v2
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c

6.Docker图像没有状态

在Docker术语中,只读的 ;层 ;称为映像。一个形象永远不会改变。由于Docker使用的是 ;联合文件系统,因此进程认为整个文件系统是读写挂载的。但所有更改都转到最上面的可写层,而在其下面,只读图像中的原始文件是不变的。由于图像不改变,所以图像没有状态。

7.虚拟机是以硬件为中心的,docker容器是以应用程序为中心的

假设我们有一个1GB大小的容器映像。如果我们想要使用一个完整的VM,我们需要有1GB乘以x个您想要的VM。在docker容器中,我们可以共享1GB的大部分空间,如果您有1000个容器,我们仍然可能只有1GB多一点的空间用于容器OS,假设它们都运行相同的OS映像。

8.支持的图像格式

Docker映像:

  • 裸露。映像没有容器或元数据信封。
  • OVF。OVF容器格式。
  • 阿基。Amazon内核映像。
  • 阿里。亚马逊ramdisk图像。
  • 阿美族。Amazon计算机映像。

VM映像:

  • 生的。非结构化磁盘映像格式;如果您有一个没有扩展名的文件,它可能是原始格式
  • VHD。VHD磁盘格式,VMware、Xen、Microsoft、VirtualBox和其他虚拟机监视器使用的一种常见磁盘格式
  • VMDK。许多通用虚拟机监视器支持的通用磁盘格式
  • VDI。由VirtualBox虚拟机监视器和QEMU仿真程序支持
  • ISO。光盘,如CD-ROM的数据内容的一种存档格式。
  • QCOW2。由QEMU模拟器支持,该模拟器可以动态扩展,并支持写即复制
  • 阿基。Amazon内核映像。
  • 阿里。亚马逊ramdisk图像。
  • 阿美族。Amazon计算机映像。
 类似资料:
  • 问题内容: Docker和虚拟机的映像是否存在差异?除了图像格式,我在任何地方都找不到任何信息。请注释掉图像大小,实例创建时间,捕获时间等内容。谢谢! 问题答案: 这些是我可以列出的docker和VM映像之间的一些区别: 1. Docker中的快照过程比VM更快 我们通常从基本映像开始,然后进行更改,然后使用docker提交这些更改,然后创建一个映像。该图像仅包含与基准的差异。当我们要运行图像时,

  • 问题内容: 使用Docker时,我们从基础映像开始。我们启动它,创建更改,并将这些更改保存在形成另一个映像的层中。 因此,最终我为自己的PostgreSQL实例提供了一个映像,为我的Web应用程序提供了一个映像,对它们的更改将继续保留。 什么是容器? 问题答案: 图像的实例称为容器。您有一张图像,该图像是您描述的一组图层。如果启动此映像,则该映像具有正在运行的容器。您可以有多个运行中的同一图像容器

  • 问题内容: Docker中的容器和映像之间有什么区别?在《Docker入门》教程中,这两个术语都被使用,但是我不明白它们之间的区别。 有人可以说明一下吗? 问题答案: 图像是实时容器的固定不变快照。容器正在运行(或停止)某些图像的实例。 从名为“ubuntu”的基本映像开始。让我们在ubuntu映像中交互式运行bash并创建一个文件。我们将使用和标志为我们提供一个交互式bash shell。 不要

  • 在使用Docker时,我们从一个基图像开始。我们启动它,创建更改,这些更改保存在图层中,形成另一个图像。 所以最终我有了一个用于我的PostgreSQL实例的映像和一个用于我的web应用程序的映像,对这些映像的更改将持续保持。 什么是容器?

  • 我是一个全新的Docker和正在学习入门教程。在第7步,它说 键入命令并按Return。该命令列出本地系统上的所有映像。您应该在列表中看到。 但第一列清楚地表示“存储库”,而不是例如“图像名称”。我还在别人的机器上注意到,因为一个图像可以有多个标记,所以这个列表经常包含重复的条目--每个标记一个。那么这是一个图像列表,一个存储库列表,一个图像-标签组合列表还是其他什么呢?映像和存储库有什么区别?

  • 高山码头工人形象和忙碌的码头工人形象有什么区别? 当我检查他们的DockFile时,alpine是这样的(对于alpine v3.12-3.12.7) busybox是这样的 但作为https://alpinelinux.org/about/说 Alpine Linux是围绕musl libc和busybox构建的。 那么到底有什么区别呢? 我也很好奇,许多docker图像(nodejs/ngin