运行架构
在上图中,左侧为 VM,右侧为 CONTAINER。
1.VM 和 CONTAINER 的最底层皆为基础设施服务器。
2.VM 第二层「倒数」为虚拟化平台,而 CONTAINER 则是主机系统。
3.VM 第三层运行虚拟系统,在虚拟系统中安装对应服务,最后运行应用。
CONTAINER 第三层则是自身容器,在容器内运行对应服务,及相关的应用。
4.容器一般会封装类库及应用,无需像虚拟机那样分别搭建。
两则对比
对比表格:
CONTAINER VM
启动速度 秒级 分钟
运行性能 接近原生 百分之 95
磁盘占用 MB GB
数量 成百上千 约十几台
隔离能力 进程级别 系统级别
操作系统 只支持 Linux 几乎所有
封装程度 只打包项目代码和依赖关系 完整操作系统
对比详解
CONTAINER 的启动速度极快,几乎是秒级的;VM 则是分钟级,因为要等里面运行的虚拟系统慢慢的启动。
CONTAINER 因为是进程级别运行,几乎是原生级运行性能;VM 是系统内再虚拟系统,所以会有性能耗损。
CONTAINER 占用的资源极小,几百 MB 即可跑一个服务;VM 不用说别的,就单虚拟系统就要几个 GB 了。
CONTAINER 因为占用资源小,故一台服务器运行百个千个不成问题;VM 的资源占用较大,所以一台服务器无法跑太多。
当前的 CONTAINER 内部环境只支持 Linux,所以一些运行在 Windows 的程序无法被封装;VM 则没有任何限制,因为它支持几乎所有的操作系统。
CONTAINER 只能打包项目代码和依赖关系,所以可运行的应用程序有限;VM 可运行完整操作系统,所以理论支持所有应用。