docker容器和虚拟机的区别是什么?传统的虚拟化是在硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境。而Dokcer则是在OS的基础上进行虚拟,显然Dokcer更轻量,所以其资源占用、性能消耗相比传统虚拟化都有很大优势。
结构方面区别
虚拟机实现资源隔离的方式,是利用Hypervisor虚拟化服务器的CPU、内存、IO等设备。
而docker容器就简单得多,Docker引擎可以看成Linux的namespace、cgroup和镜像管理文件系统的封装,Docker并没有和虚拟机一样利用一个完全独立的操作系统实现环境隔离,利用的是目前linux内核本身支持的容器方式实现的资源和环境隔离。
简单来说,Docker就是利用namespace实现的系统环境的隔离,利用cgroup实现资源限制,利用镜像实现根环境的的隔离。
性能方面区别
由于Docker有着比虚拟机更少的抽象层,不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,减少了加载操作系统内核的时间和资源的消耗,所以,在CPU、内存等资源利用率上更有优势。
比如,容器启动时间是秒级,而虚拟机都是分钟级,硬盘使用一般为MB计算,而虚拟机大多是GB级的空间占用,在性能上,容器更接近原生,单机就能支持上千个,远多于虚拟机的几十个。
docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容。而虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。
以上是关于docker容器和虚拟机的区别介绍,融亿云的容器云产品基于云计算集群架构,弹性强大,提高了服务器的CPU利用效率,降低了硬件成本,为轻量级应用部署提供诸多便利,容器云产品详情链接