docker和虚拟机的区别
docker和虚拟机的区别有:1、启动速度不同;2、占用资源不同;3、隔离性不同;4、安全性不同;5、可管理性不同;6、⾼可⽤和可恢复性;7、创建、删除速度不同;8、交付部署不同。其中,启动速度不同是指docker启动速度属于秒级别,虚拟机通常需要几分钟去启动。
1、启动速度不同
docker:启动 Docker 相当于启动宿主操作系统上的一个进程,启动速度属于秒级别。
虚拟机:启动虚拟机需要先启动虚拟机的操作系统,再启动应用,这个过程非常慢,通常需要几分钟。
2、占用资源不同
docker:Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。
虚拟机:虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU 资源,一台机器只能开启几十个的虚拟机。
3、隔离性不同
docker:docker隔离性更弱,docker属于进程之间的隔离。
虚拟机:虚拟机隔离性更强,可实现系统级别隔离。
4、安全性不同
docker:docker的安全性更弱。Docker的租户root和宿主机root等同,一旦容器内的用户从普通用户权限提升为root权限,它就直接具备了宿主机的root权限,进而可进行无限制的操作,容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。
虚拟机:虚拟机租户root权限和宿主机的root虚拟机权限是分离的,并且虚拟机利用如Intel的VT-d和VT-x的ring-1硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互。
5、可管理性不同
docker:docker的集中化管理⼯具还不算成熟。
虚拟机:各种虚拟化技术都有成熟的管理⼯具,例如VMware vCenter提供完备的虚拟机管理能⼒。
6、高可用和可恢复性
docker:docker对业务的⾼可⽤⽀持是通过快速重新部署实现的。
虚拟机:虚拟化具备负载均衡,⾼可⽤,容错,迁移和数据保护等经过⽣产实践检验的成熟保障机制,VMware可承诺虚拟机99.999%⾼可⽤,保证业务连续性。
7、创建、删除速度不同
docker:Docker容器创建是秒级别的,Docker的快速迭代性,决定了⽆论是开发、测试、部署都可以节约⼤量时间。
虚拟机:虚拟化创建是分钟级别的。
8、交付部署不同
docker:Docker在Dockerfile中记录了容器构建过程,可在集群中实现快速分发和快速部署。
虚拟机:虚拟机可以通过镜像实现环境交付的⼀致性,但镜像分发⽆法体系化。
拓展阅读
docker的使用场景
- 持续集成:持续集成指的是频繁地将代码集成到主干上,这样能够更快地发现错误。Docker 具有轻量级以及隔离性的特点,在将代码集成到一个 Docker 中不会对其它 Docker 产生影响。
- 提供可伸缩的云服务:根据应用的负载情况,可以很容易地增加或者减少 Docker。
- 搭建微服务架构:Docker 轻量级的特点使得它很适合用于部署、维护、组合微服务。