当前位置: 首页 > 面试题库 >

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

颛孙子民
2023-03-14
问题内容

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


问题答案:

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

1. Docker中的快照过程比VM更快

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

2. Docker的启动时间少于VM

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

4. Docker映像具有更大的可移植性

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

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

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

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

6. Docker映像没有状态

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

7. VM以硬件为中心,docker容器以应用程序为中心

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

8.支持的图像格式

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机器映像。


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

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

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

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

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

  • 问题内容: 有什么方法可以手动下载Docker映像吗? 我的互联网连接速度非常慢,对我来说,最好获得图像的链接,然后以更高的互联网速度将其下载到其他位置, 如何获取由docker pull管理的映像的直接URL? 问题答案: 可能会得到,但让我提出另外两种建议! 如果可以通过快速连接连接到远程服务器,并且该服务器可以运行Docker,则可以在该服务器上,然后将映像(及其所有层和元数据)导出为tar