我曾经将Docker容器视为轻量级,精简的虚拟机。 进行这种比较是有道理的,因为至少在Docker的最初市场中,总是将其与虚拟机进行比较-例如," Docker花费的启动时间少于VM,等等"。
但是docker容器不是虚拟机。
让我们对Docker容器和虚拟机进行并排比较。
虚拟机
虚拟机(VM)是物理硬件的抽象,它将一台服务器变成很多服务器。 虚拟机管理程序允许多个VM在单台计算机上运行。 每个VM均包含操作系统,应用程序以及必要的二进制文件和库的完整副本-占用数十GB。 VM也可能启动缓慢。
> follow devkube.blogsopt.com
虚拟机架构
假设有许多层。 连接这些层后,它们便构成了虚拟机。
虚拟机基础结构的底层主要是虚拟机的硬件。
该硬件层主要是运行虚拟机所需的硬件池。 它主要由Ram组成-它可以是SSD(通常是SSD),甚至是低性能的HDD,CPU等。
在此层之上,运行一个主机操作系统-通常是Linux,有时是Windows。 在此之上,有一个称为管理程序层的层。 系统管理程序层有两种类型。 一种运行在主要用于数据中心的硬件层之上,另一种运行在用于VMware或VirtualBox等程序的操作系统之上。
在此Hypervisor层之上,运行来宾OS块。 假设您要彼此完全隔离地运行三种不同类型的应用程序,则需要启动三个独立的VM。 系统管理程序直接控制这三个VMS。
但是现在想象一下,这三个虚拟机有其操作系统-Linux或Windows。 现在,假设他们具有Linux操作系统,因此每个OS大约为700mb。 我们必须启动三个VM,这些VM在我们的操作系统上占据大约2.1GB的存储空间。 最重要的是,每个来宾OS都需要一套自己的bin /库-Python依赖项,Node模块等,以奠定运行该应用程序的基础。
现在,最后,我们在此之上具有我们的Application层,该层通常是您已构建的应用程序的源代码
什么是容器?
容器是应用程序层的抽象,将代码和依赖项打包在一起。 多个容器可以在同一台计算机上运行,并与其他容器共享其OS内核,每个容器在用户空间中作为隔离的进程运行。 容器占用的空间少于VM(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要的VM和操作系统更少。
> Follow devkube.blogspot.com
Docker容器架构
Docker并不是魔术,而是需要一些基础硬件来运行。 因此,第一层(硬件层)是虚拟机层基础结构所共有的。
在此之上,有一个主机操作系统。 它可以是能够运行Docker的任何操作系统。 Docker支持所有主要的Linux发行版,并且有一些方法可以在Windows计算机和Mac上运行Docker。
现在进入第三层。 这里有一些有趣的东西。 Docker守护程序替换了该层,该层是虚拟机体系结构中的管理程序层。 该服务在后台运行,负责运行Docker容器。
然后Bin / Libray驻留在该应用程序的容器中,并且有该应用程序的源代码。 Docker守护程序管理所有这些容器层。
因此,我们不需要来宾操作系统,并节省了它所占用的内存量。 我们还保存了运行这些VM时机器上的负载。
在这里,每个应用程序都相互隔离,因为它已托管在不同的容器中,但仍位于同一主机OS上。
-
虚拟机
+关注
关注
1文章
950浏览量
28515 -
Docker
+关注
关注
0文章
492浏览量
12020
发布评论请先 登录
相关推荐
虚拟化数据恢复——Hyper-V虚拟机数据恢复案例
![<b class='flag-5'>虚拟</b>化数据恢复——Hyper-V<b class='flag-5'>虚拟机</b>数据恢复案例](https://file1.elecfans.com/web2/M00/8F/DD/wKgZomTTN6qAWIF8AAM51-OjElE231.png)
虚拟机数据恢复—异常断电导致XenServer虚拟机不可用的数据恢复案例
![<b class='flag-5'>虚拟机</b>数据恢复—异常断电导致XenServer<b class='flag-5'>虚拟机</b>不可用的数据恢复案例](https://file1.elecfans.com/web2/M00/8F/99/wKgaomTQm3qAf9x-AATepdcm3zE240.png)
什么是虚拟机?什么是虚拟化?
创建ubuntu虚拟机
虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例
![<b class='flag-5'>虚拟机</b>数据恢复—KVM<b class='flag-5'>虚拟机</b>被误删除的数据恢复案例](https://file.elecfans.com/web2/M00/AD/F3/poYBAGSadTWACtx5AANUKGY87Ws406.png)
ARM平台实现Docker容器技术
ARM平台实现Docker容器技术
Jtti:Docker会替代调虚机吗
![Jtti:<b class='flag-5'>Docker</b>会替代调虚<b class='flag-5'>机</b>吗](https://file1.elecfans.com/web2/M00/FB/5A/wKgZomaQzyWAG5r5AAQoi__pg4c076.png)
什么是虚拟机?虚拟机真的那么好用吗?
![什么是<b class='flag-5'>虚拟机</b>?<b class='flag-5'>虚拟机</b>真的那么好用吗?](https://file.elecfans.com/web2/M00/43/7B/pYYBAGJ-B6aAHuNPAAAf8J1Ebk4778.jpg)
虚拟化数据恢复—虚拟机误还原快照的数据恢复案例
虚拟机的ip地址和主机一样吗
虚拟机数据恢复-虚拟机还原快照原理和误还原快照的数据恢复方案
![<b class='flag-5'>虚拟机</b>数据恢复-<b class='flag-5'>虚拟机</b>还原快照原理和误还原快照的数据恢复方案](https://file1.elecfans.com/web2/M00/C2/34/wKgaomXdXNOAB5RGAAF79aoW9Ew715.png)
评论