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

容器和虚拟机的比较(容器相比于虚拟机的优势)


一、docker容器与虚拟机有什么区别?

Docker结构紧凑,移动和部署速度快,工作效率高,但其隔离能力比服务器虚拟化差:不同的容器属于不同的提单(不同的应用程序版本运行在Docker上)并且相互独立(孤立)。但它是由同一个仓库管理器(主机操作系统内核)管理的,所以仓库管理器可以看到所有容器的相关信息(因为操作系统内核是共享的,所以相关信息也会共享)。服务器虚拟化就像在码头(物理服务器和虚拟化层)上架设了很多个“迷你码头”——独立的仓库(虚拟机)。它拥有完全独立(分离)的空间,属于不同的客户(虚拟机所有者)。每个仓库都有自己的仓库管理器(当前虚拟机的操作系统内核),无法管理其他仓库。没有信息共享因此我们需要根据不同的场景和应用需求以不同的方式使用Docker技术或者使用服务器虚拟化技术。例如,一个典型的Docker应用场景是当服务器上的Docker实例属于单个用户时,这样可以在保证安全性的同时最大限度地发挥Docker的技术优势。


二、容器和虚拟机的区别与虚拟机相比,容器的资源效率更高,因为它们不需要为每个应用程序使用单独的操作系统。更小的实例大小以及更快的创建和迁移速度。这意味着单个操作系统可以承载比虚拟机更多的容器。
容器内的应用程序进程直接在主机的内核上运行。容器没有自己的内核;相反,进程是封装和隔离的。
容器可以被认为是安装了一组特定应用程序的虚拟机,与虚拟机相比,它们具有更少的抽象层、更轻量级、启动速度更快。云容器的资源效率是虚拟机无法比拟的。
容器使用完全沙盒机制,彼此之间没有接口(类似于iPhone应用程序)。它的性能开销很小,并且很容易在您的机器或数据中心上运行。最重要的是,它与语言、框架和系统无关。
Docker相比虚拟机的隔离性较弱,Docker是进程间隔离,而虚拟机可以实现系统级隔离。安全性:Docker的安全性也很弱。
容器内的应用程序是直接在底层系统上的进程,而不是虚拟机内的进程。因此,启动容器相当于在本地机器上启动一个进程,而不是启动操作系统,速度要快得多。