一份微服务架构手稿图,彻底搞定微服务核心原理(19)

简言之 , 虚拟机先需要虚拟一个物理环境 , 然后构建一个完整的操作系统 , 再搭建一层 Runtime , 然后供应用程序运行 。

对于容器环境来说 , 不需要安装主机操作系统 , 直接将容器层(比如 LXC 或 Libcontainer)安装在主机操作系统(通常是 Linux 变种)之上 。

在安装完容器层之后 , 就可以从系统可用计算资源当中分配容器实例了 , 并且企业应用可以被部署在容器当中 。

但是 , 每个容器化应用都会共享相同的操作系统(单个主机操作系统) 。 容器可以看成一个装好了一组特定应用的虚拟机 , 它直接利用了宿主机的内核 , 抽象层比虚拟机更少 , 更加轻量化 , 启动速度极快 。

相比于虚拟机 , 容器拥有更高的资源使用效率 , 因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快 。 这意味着相比于虚拟机 , 单个操作系统能够承载更多的容器 。

云提供商十分热衷于容器技术 , 因为在相同的硬件设备当中 , 可以部署数量更多的容器实例 。

推荐阅读