当前位置:首页 > 虚拟机 > 正文

虚拟机与容器的区别


一、Docker容器是什么?它比虚拟机强在何处?Docker容器允许开发者将自己的应用程序打包成统一的格式,然后打包成可移植的容器,然后在任何可以安装Docker引擎的服务器(比如主流的Linux系统或者Windows机器)上实现,当然还有也虚拟化了。Docker容器几乎没有性能开销,并且可以轻松地在您的系统和数据中心上运行。最大的特点是不依赖于任何系统、框架、语言。
容器比虚拟机有很多优势,因为它们是进程级的。
第一:快速启动:因为容器中的应用软件是底层系统上的进程,而不是虚拟机进程内部。这使得速度更快,因为启动容器时它不会启动整个操作系统。
二:资源占用率低。与虚拟机相比,容器只占用自己需要的资源,不会占用错误的资源。由于虚拟机是一个完整的操作系统,它不可避免地占用所有资源。
第三:小而轻:容器只需要包含所使用的组件即可。与虚拟机相比,容器文件比虚拟机小得多。
第四:便捷的移动性:容器技术最重要的是其轻量级且一致的格式,可以让服务运行在各种主机上。容器格式变得更加标准化,可以促进客户的工作负载迁移,有效避免单一平台提供商。
二、docker容器与虚拟机有什么区别?1、启动速度不同
Docker启动速度在秒级以内。虚拟机通常需要几分钟才能启动。
2.不同的性能损失
Docker需要的资源更少。Docker在操作系统级别进行虚拟化。docker容器与内核交互。几乎没有性能损失,性能优良。通过虚拟机管理程序层和内核层进行虚拟化。
3.系统利用率不同
Docker更加轻量级。Docker的架构可以共享内核和共享应用程序库,占用内存很少。在相同的硬件环境下,Docker运行的镜像远多于虚拟机,系统利用率非常高。
4.隔离属性不同
与虚拟机相比,docker的隔离性较弱。Docker属于进程间的隔离,虚拟机可以实现系统级的隔离。
5.安全性不同
Docker的安全性也较弱。Docker的租户根与主机根相同。容器内的用户一旦从普通用户权限升级为root权限,将直接拥有宿主机的root权限,可以进行无限制的操作。虚拟机租户的根权限和主机的虚拟机根权限分离,虚拟机采用Intel的VT-d、VT-x等ring-1硬件隔离技术。这种隔离技术可以防止虚拟机相互突破和交互。而且容器还没有任何形式的硬件隔离,这使得容器容易受到攻击。
6.可管理性不同
Docker的集中管理工具还不成熟。各种虚拟化技术都有成熟的管理工具。例如,VMwarevCenter提供了完整的虚拟机管理功能。
7.可用性和可恢复性是不同的
Docker对业务的高可用支持是通过快速重新部署来实现的。虚拟化具有经过生产实践检验的成熟的负载均衡、高可用性、容错、迁移、数据保护等保障机制。VMware可以承诺虚拟机99.999%的高可用性,保证业务连续性。
8.创建和删除速度不同
虚拟化创建需要几分钟,而Docker容器创建需要几秒钟。Docker的快速迭代决定了无论是开发、测试、部署都能节省大量的时间。
9.交付和部署速度不同
虚拟机通过镜像可以实现一致的环境交付,但镜像分发无法系统化;Docker在Dockerfile进程中记录容器的构建,可以实现集群中的快速分发和快速部署;