虚拟机(VM)是对某种计算机操作系统的模拟,虚拟机的实现是基于计算机虚拟化的架构和指令,具体可能需要特定的硬件、软件、或软硬件同时的支持。在本文中希云将为大家揭晓Docker容器和全虚拟化之间的区别。
Docker是一个创建封装好的隔离计算机环境,每个封装好的环境都被称为容器。
启动一个Docker容器非常迅速,因为:
每个容器共享宿主系统的内核
然而,各个容器都运行着一个Linux的副本
这意味着没有hypervisor,而且不需要额外的启动
对比之下,KVM, VirtualBox 或者 VMware之类的虚拟机实现是不同的。
宿主系统 vs 客户系统
宿主系统
是直接安装在计算机上的原生系统
客户系统
是安装在一个虚拟机上,或者在宿主机的一个分区上的系统
如果是安装在虚拟机上,客户系统可以与宿主系统不同
如果是安装在一个磁盘分区上,客户系统必须与宿主系统相同
是一种计算机软件、固件或者硬件,用于创建并运行虚拟机的
一个系统中安装着hypervisor,里边运行着一个或多个虚拟机,这个系统可被定义为宿主机
各个虚拟机被定义为客户机
由Docker创建的一个封闭计算环境
Linux平台上的Docker
基于Linux内核提供的组件构建的(特别是cgroups和namespaces)
不像虚拟机,不需要包含一个独立的操作系统
非Linux平台上的Docker
使用Linux虚拟机去运行容器
是管理容器的持久进程
使用Linux特定的内核特性去实现
全虚拟化的系统分配到的是独有的一组资源,只有极少量的资源会共享,是有更强的隔离性,但是更加重了(需要更加多的资源)。用Docker容器有弱些的隔离性,但是它们更加轻量,需要更少的资源,所以你可以毫不费力地启动上千个容器。
文章来自:希云cSphere(http://csphere.cn)
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论