Docker和KVM的原理上有什么区别?
Docker 是容器可以理解为沙盒,与虚拟机原理大不同,虚拟机是基于硬件虚拟层之上的一个进程来模拟硬件系统平台,再虚拟硬件系统平台上安装的操作系统。 你在虚拟机的系统中运行一个程序时,其实是由虚拟机的CPU、内存来处理的,与真机的物理CPU 中间隔了硬件虚拟层,性能上会比真机差。
而沙盒的里面的程序是由真机的物理CPU 、内存处理的,区别只在于容器中执行程序时不会对容器之外的原操作系统环境产生任何影响,比如我们的原操作系统是Centos ,你需要安装mysql / mongodb 、JAVA 等程序,这些程序在安装时会带一大堆的支持库/LIB/.A 等等,在你的系统中建立文件关联,久而久之各种库不同的版本还会有冲突、互斥;如果采用容器就不会有这样的问题,每个程序的依赖环境包括支持库都在自己的封装包中,无需安装运行时也不对原系统产生改变。是很多是开发人员的最爱。
对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。
什么是Docker?为什么要使用Docker