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

为什么容器比虚拟机小(容器和虚拟机的优缺点)


一、容器和虚拟机的区别与虚拟机相比,容器不需要为每个应用程序配备单独的操作系统,因此资源效率更高——即体积更小、创建和迁移速度更快。这意味着单个操作系统可以承载比虚拟机更多的容器。
容器中的应用程序进程直接运行在主机的内核上
容器可以被认为是包含安装有独立应用程序的程序的机器。与直接使用主机内核的机器相比,它的抽象层更少;更轻更快。云容器比虚拟机具有更高的资源利用率性能。
容器采用完全沙箱机制,彼此之间没有任何联系(类似于iPhone应用程序)。它几乎没有性能开销,并且可以轻松地跨机器和数据中心运行。最重要的是它们是什么语言。它不依赖于任何框架或系统。
与虚拟机相比,Docker提供了进程之间的隔离。虚拟机可以实现系统级隔离。安全性:Docker的安全性也很弱。
容器中的应用程序是底层系统直接快速启动的进程。虚拟机内的进程。所以,启动容器相当于启动机器上的一个进程,而不是启动一个更快的操作系统。
二、docker容器与虚拟机有什么区别?1、启动速度可变
Docker启动速度在秒级以内。虚拟机通常需要几分钟才能启动。
2.各种性能损失
Docker在操作系统层面进行虚拟化,性能损失非常小。通过虚拟机管理程序层和内核层实现虚拟化的性能。
3.系统利用率各不相同
Docker的架构允许共享内核和共享应用程序库,因此占用的内存非常少。在相同的硬件环境下,Docker运行的镜像比虚拟机多得多,并且提供非常高的系统利用率。
4.各种隔离属性
与虚拟机相比,Docker的隔离性较弱。Docker是进程间隔离,虚拟机可以实现系统级隔离。
5.安全性不同
Docker的安全性也较弱。Docker的租户根与主机根相同。当容器中的用户从普通用户权限升级为root权限时,他或她就拥有主机的直接root权限,可以执行无限制的操作。虚拟机租户的root权限与主机的root虚拟机权限分离,虚拟机采用ring-1硬件隔离技术,如Intel的VT-d、VT-x。它们闯入、相互交互,而容器尚不具有任何形式的硬件隔离,这使得它们容易受到攻击。
6.多功能的可管理性
Docker的集中管理工具还不成熟。各种虚拟化技术都有成熟的管理工具。例如,VMwarevCenter提供了完整的虚拟机管理功能。
7.可用性和可恢复性是不同的。
Docker对您业务的高可用性支持是通过快速重新部署来实现的。虚拟化拥有经过生产环境考验的负载均衡、高可用、容错、迁移、数保护等成熟的保障机制,可以保证虚拟机99.999%的高可用,保证业务连续性。
8.创建和删除速度不同
虚拟化创建需要几分钟,而Docker容器创建需要几秒钟。部署可以为您节省大量时间。
9.交付速度和部署速度不同
虚拟机可以通过镜像实现一致的环境交付,但镜像部署无法系统地记录Dockerfile进程中的容器配置。可以实现集群的快速部署和部署。
二、docker容器与虚拟机有什么区别?

Docker具有紧凑、快速迁移部署、运行高效的特点,但其隔离性比服务器虚拟化差:不同的容器属于不同的开销(Docker上运行的不同应用实例)且相互独立。(孤立)。但它们是由同一个存储管理器(底层操作系统内核)管理的,因此存储管理器可以看到所有容器的相关信息(由于操作系统内核是共享的,所以相关信息也会共享)。服务器虚拟化类似于创建几个独立的“小码头”——一个码头(物理主机和虚拟化层)上的仓库(虚拟机)。它具有完全独立(隔离)的空间,并由不同的客户端(虚拟机所有者)拥有。每个仓库都有自己的仓库管理器(当前虚拟机的操作系统内核),无法管理其他仓库。没有信息交换。因此,我们需要根据不同的应用场景和需求,以不同的方式使用Docker技术或者使用服务器虚拟化技术。例如,一个典型的Docker应用场景是主机上的Docker实例由单个用户拥有,这样可以在保证安全性的同时充分利用Docker的技术优势。


三、容器与虚拟机是什么?虚拟机是一种可以被认为在看起来像多台独立计算机的硬件上运行的计算机。通过软件模拟具有完整硬件系统功能并在完全隔离的环境中运行的完整计算机系统。容器是虚拟化的操作系统。容器位于物理服务器及其主机操作系统(通常是Linux或Windows)之上。同时,容器非常轻量级,大小只有几兆字节,启动只需几秒钟。与容器相比,虚拟机需要几分钟的时间才能运行,并且其大小比同等容器大得多。
使用容器的好处包括节省IT管理资源、减少和简化安全更新、减少传输、迁移和工作负载代码上传,以及更快的应用程序启动和减小快照大小。