docker与虚拟机区别
容器直接运行在宿主机的内核上,其本质上以一系列进程的结合。虚拟机的创建、启动和关闭都是基于一个完整的操作系统。一个虚拟机就是一个完整的操作系统。容器是轻量级的,虚拟机是重量级的。首先容器不需要额外的资源来管理
docker优点:
- 启动较快(秒级别,虚拟机分钟级别)
- CPU计算强,相对物理机基本没有损耗(虚拟机计算性能损耗,一方面是因为虚拟机增加了一层虚拟硬件层,另一个方面虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废)
- 单机可以运行上千个容器,虚拟机一般几十个
docker缺点: - 资源隔离不太好,只能限制最大资源,可能会被其他程序抢占自己的资源
- .安全性问题。docker目前并不能分辨具体执行指令的用户,只要一个用户拥有执行docker的权限,那么他就可以对docker的容器进行所有操作,不管该容器是否是由该用户创建。比如A和B都拥有执行docker的权限,由于docker的server端并不会具体判断docker cline是由哪个用户发起的,A可以删除B创建的容器,存在一定的安全风险。