Docker和虚拟机的映像是否存在差异?除了图像格式,我在任何地方都找不到任何信息。请注释掉图像大小,实例创建时间,捕获时间等内容。谢谢!
这些是我可以列出的docker和VM映像之间的一些区别:
1. Docker中的快照过程比VM更快
我们通常从基本映像开始,然后进行更改,然后使用docker提交这些更改,然后创建一个映像。该图像仅包含与基准的差异。当我们要运行图像时,我们还需要基础,它使用分层文件系统在基础之上将图像分层。文件系统将不同的层合并在一起,我们得到了所需的东西,我们只需要运行它即可。由于docker通常基于注册表中的现成映像构建,因此我们很少需要自己“快照”整个操作系统。泊坞窗将操作系统快照到公共映像中的这种能力也使部署在其他泊坞窗主机上变得容易。
2. Docker的启动时间少于VM
虚拟机通常需要几分钟才能启动,但是容器要花费几秒钟,有时甚至不到一秒钟。
4. Docker映像具有更大的可移植性
Docker映像由层组成。当我们提取或传输图像时,仅检索尚未在缓存中的图层。这意味着,如果我们使用基于同一基本操作系统的多个映像,则仅创建或检索一次基本层。VM映像没有这种灵活性。
5. Docker提供映像的版本控制
我们可以使用docker commit命令。我们可以指定两个标志: -m 和 -a.该 -m 标志允许我们指定提交消息,就像在版本控制系统上进行提交时一样:
-m
-a.
$ 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: