结构方面区别
虚拟机实现资源隔离的方式,是利用Hypervisor虚拟化主机的CPU、内存、IO等设备。
而容器就简单得多,Docker引擎可以看成Linux的namespace、cgroup和镜像管理文件系统的封装,Docker并没有和虚拟机一样利用一个完全独立的操作系统实现环境隔离,利用的是目前linux内核本身支持的容器方式实现的资源和环境隔离。
简单来说,Docker就是利用namespace实现的系统环境的隔离,利用cgroup实现资源限制,利用镜像实现根环境的的隔离。
性能方面区别
由于Docker有着比虚拟机更少的抽象层,不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,减少了加载操作系统内核的时间和资源的消耗,因此,在CPU、内存等资源利用率上更有优势。
比如,容器启动时间是秒级,而虚拟机都是分钟级,硬盘使用一般为MB计算,而虚拟机大多是GB级的空间占用,在性能上,容器更接近原生,单机就能支持上千个,远多于虚拟机的几十个。
docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容。而虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。
提示:现在腾讯云新人点击注册然后实名认证后,可以点此一键领取2860元代金券,然后点此进入腾讯云活动页面参加优惠力度非常大的腾讯云3年和5年时长服务器活动,一次性买多年,免得续费贵,这样就可以获得最大的优惠折扣,省钱。
版权声明:xxxxxxxxx;
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态