我曾经将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上。
25条小贴士能够快速提升和巩固你的数据可视化设计
华为现阶段在售机型价格布局
熔断电阻器技术提供具有成本效益的解决方案
济南出台第三代半导体专项政策 国内第三代半导体版图渐显
中国联通将于12月12日在北京举办5G区块链研讨会
Docker容器与虚拟机的区别
欧姆龙开始在上海生产一线自动化的机器人
KUKA机器人MAKRO_TRIGGER程序用法分析
为什么说三星最赚钱的业务会被中国企业分食?
红米Note4X“初音未来”粉绿版2月14日情人节限量发售
对ARM虚拟化下设备直通的支持进行介绍
视频检测道路监控补光灯上面出现水雾怎么办
华为Mate 9 Pro综合评测:拍照对比iPhone 7 Plus/三星S7 edge也不逊色
TMS Software:TMS BIZ特点介绍
宁德时代有望夺下特斯拉电池大单,中国汽车供应链将正迎来黄金时代
宾利中国就辛有志售卖“宾利月饼”发声:未授权生产该款月饼
锂电池生产工艺和性能不断提升,将占据储能电池、动力电池等领域
撑死大鱼饿死小虾 下半年Flash芯片有变动
800G光模块QSFP-DD和OSFP的区别
信驰达科技参与《汽车玻璃集成UWB数字钥匙发展研究白皮书》编制工作