「12张手绘图」我搞懂了微服务架构(18)

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

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

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

此外 , 容器易于迁移 , 但是只能被迁移到具有兼容操作系统内核的其他服务器当中 , 这样就会给迁移选择带来限制 。

因为容器不像虚拟机那样同样对内核或者虚拟硬件进行打包 , 所以每套容器都拥有自己的隔离化用户空间 , 从而使得多套容器能够运行在同一主机系统之上 。

我们可以看到全部操作系统层级的架构都可实现跨容器共享 , 惟一需要独立构建的就是二进制文件与库 。

推荐阅读