VM 映像和 Docker 映像之间有什么区别?
What are the differences between a VM image and a Docker image?
Docker和虚拟机的镜像有什么区别吗?
除了图像格式,我在任何地方都找不到任何相关信息。
请注释掉图像大小、实例创建时间、捕获时间等内容。
谢谢!
我可以列出 docker 和 VM 映像之间的一些差异:
1。 Docker 中的快照过程比 VM
中的快照过程更快
我们通常从一个基本图像开始,然后进行更改,并使用 docker 提交这些更改,然后它会创建一个图像。此图像仅包含与基础的差异。当我们想要 运行 我们的图像时,我们还需要基础,它使用分层文件系统将我们的图像分层在基础之上。文件系统将不同的层合并在一起,我们得到了我们想要的,我们只需要 运行 它。由于 docker 通常建立在来自注册表的现成图像之上,我们很少需要 "snapshot" 整个 OS 自己。 Docker 能够将 OS 快照到公共映像中,这也使得在其他 docker 主机上部署变得容易。
2。 Docker 的启动时间少于虚拟机
虚拟机通常需要几分钟才能启动,但容器需要几秒钟,有时甚至不到一秒。
4. Docker 图像更便携
Docker 图片由图层组成。当我们拉取或传输图像时,只会检索我们尚未在缓存中的层。这意味着如果我们使用基于相同基础操作系统的多个图像,则基础层只会创建或检索一次。 VM 映像没有这种灵活性。
5. Docker 提供图像的版本控制
我们可以使用 docker 提交命令。我们可以指定两个标志:-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 乘以 x 您想要的 VM 数量。在 docker 容器中,我们可以共享 1GB 的大部分,如果您有 1000 个容器,我们仍然可能只有 1GB 多一点的 space 用于容器 OS,假设它们都是 运行宁同OS图像。
8.支持的图像格式
Docker 图片:
- 光秃秃的。该图像没有容器或元数据信封。
- ovf。 OVF 容器格式。
- 秋。亚马逊内核映像。
- 阿里。 Amazon ramdisk 映像。
- 朋友。亚马逊机器图像。
VM 映像:
- 原始。非结构化磁盘映像格式;如果你有一个文件没有
扩展它可能是原始格式
- vhd。 VHD 磁盘格式,
VMware、Xen 的虚拟机监视器使用的通用磁盘格式,
微软、VirtualBox 和其他
- vmdk。支持常见的磁盘格式
许多常见的虚拟机监视器
- vdi。由 VirtualBox 支持
虚拟机监视器和 QEMU 模拟器
- 异。归档格式
用于光盘(如 CD-ROM)的数据内容。
- qcow2。
由QEMU模拟器支持,可以动态扩展和
支持写入时复制
- 秋。亚马逊内核映像。
- 阿里。亚马逊
虚拟磁盘映像。
- 朋友。亚马逊机器图像。
Docker和虚拟机的镜像有什么区别吗? 除了图像格式,我在任何地方都找不到任何相关信息。 请注释掉图像大小、实例创建时间、捕获时间等内容。 谢谢!
我可以列出 docker 和 VM 映像之间的一些差异:
1。 Docker 中的快照过程比 VM
中的快照过程更快我们通常从一个基本图像开始,然后进行更改,并使用 docker 提交这些更改,然后它会创建一个图像。此图像仅包含与基础的差异。当我们想要 运行 我们的图像时,我们还需要基础,它使用分层文件系统将我们的图像分层在基础之上。文件系统将不同的层合并在一起,我们得到了我们想要的,我们只需要 运行 它。由于 docker 通常建立在来自注册表的现成图像之上,我们很少需要 "snapshot" 整个 OS 自己。 Docker 能够将 OS 快照到公共映像中,这也使得在其他 docker 主机上部署变得容易。
2。 Docker 的启动时间少于虚拟机
虚拟机通常需要几分钟才能启动,但容器需要几秒钟,有时甚至不到一秒。
4. Docker 图像更便携
Docker 图片由图层组成。当我们拉取或传输图像时,只会检索我们尚未在缓存中的层。这意味着如果我们使用基于相同基础操作系统的多个图像,则基础层只会创建或检索一次。 VM 映像没有这种灵活性。
5. Docker 提供图像的版本控制
我们可以使用 docker 提交命令。我们可以指定两个标志:-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 乘以 x 您想要的 VM 数量。在 docker 容器中,我们可以共享 1GB 的大部分,如果您有 1000 个容器,我们仍然可能只有 1GB 多一点的 space 用于容器 OS,假设它们都是 运行宁同OS图像。
8.支持的图像格式
Docker 图片:
- 光秃秃的。该图像没有容器或元数据信封。
- ovf。 OVF 容器格式。
- 秋。亚马逊内核映像。
- 阿里。 Amazon ramdisk 映像。
- 朋友。亚马逊机器图像。
VM 映像:
- 原始。非结构化磁盘映像格式;如果你有一个文件没有 扩展它可能是原始格式
- vhd。 VHD 磁盘格式, VMware、Xen 的虚拟机监视器使用的通用磁盘格式, 微软、VirtualBox 和其他
- vmdk。支持常见的磁盘格式 许多常见的虚拟机监视器
- vdi。由 VirtualBox 支持 虚拟机监视器和 QEMU 模拟器
- 异。归档格式 用于光盘(如 CD-ROM)的数据内容。
- qcow2。 由QEMU模拟器支持,可以动态扩展和 支持写入时复制
- 秋。亚马逊内核映像。
- 阿里。亚马逊 虚拟磁盘映像。
- 朋友。亚马逊机器图像。