Docker容器与虚拟机有什么不同?
虚拟机具有完整的操作系统,其自身的内存管理通过相关的虚拟设备进行支持。 在虚拟机中,为用户操作系统和虚拟机管理程序分配有效的资源,从而可以在单台计算机(或主机)上并行运行一个或多个操作系统的多个实例。 每个客户操作系统都作为主机系统中的单个实体运行。
另一方面,Docker容器是使用Docker引擎而不是管理程序来执行的。 因此容器比虚拟机小,并且由于主机内核的共享,可以更快地启动,具有更好的性能,更少的隔离和更好的兼容性。 Docker容器能够共享一个内核并共享应用程序库,因此容器比虚拟机具有更低的系统开销,只要用户愿意使用单一平台来提供共享的操作系统,容器可以更快,更少资源。虚拟机可能需要几分钟才能创建并启动,而只需几秒钟即可创建并启动一个容器。与在虚拟机中运行应用程序相比,容器中包含的应用程序提供了卓越的性能。
Docker容器比虚拟机弱的一个关键指标就是“隔离”。英特尔的VT-d和VT-x技术为虚拟机提供了ring-1硬件隔离技术,因此虚拟机可以充分利用它的优势。它可以帮助虚拟机器高效使用资源和防止相互干扰。 Docker容器还没有任何形式的硬件隔离,因此它们容易受到攻击。
关键词: Docker 虚拟机 容器 Docker容器与虚拟机有什么不同