Containers 容器
Containers 与 Virtual Machine 最大的不同是:
Containers 虚拟的并不是硬件,而是操作系统
Containers致力于虚拟一个干净,正确,稳定,安全
的操作系统环境给予Applications运行。每个容器都是相互隔离的,并且由同一个操作系统kernel执行。这些容器都是安全的环境。这种方式提供了比传统虚拟化更高的效率和性能,同时也是一种更轻量的虚拟化。
Containers 与 VM 的区别
如上图所示:
- Type 1 在VM与硬件之间插入了一层Hypervisor(VMM),同时Hypervisor直接接触硬件。
- Type 2 Hypervisor在Host OS上运行,或者Hypervisor本身作为了Host OS
- Containers 本身作为运行环境存在,轻量化。不对硬件进行抽象,而是提供 “enhanced chroot”,使用通用内核创建隔离的环境。
- 本质上,这些虚拟化技术都是一种“抽象接口的”技术,将硬件/接口重新抽象统一。因而,抽象层所在的层级和位置将会对性能产生影响。
- 它们的目的都是将复杂的现有硬件环境/软件环境抽象为一个统一自洽的软件接口栈。
Differences
- 容器十分轻量,有着更佳的性能
- 移植性:VM(GB), Container(MB)。VM需要考虑硬件和VMM。
- 性能:VM: 几分钟启动,Container: 几秒启动
- 没有VMM和Host OS的额外开销,使得容器消耗的CPU和内存更少
- 管理成本:每个虚拟机都需要一个完整的功能性操作系统,然后再进行额外的管理
- Containers适合用于 Devops,Microservices,Batch Computing