虚拟机和容器有什么不同

虚拟机和容器都可以充分利用计算机硬件和软件资源。容器是新兴的事物,但是虚拟机已经并且继续在各种规模的数据中心大受欢迎。

如果您正在寻找在云中运行自己的服务的最佳解决方案,则需要了解这些虚拟化技术,了解它们之间的区别以及每种技术的最佳用途是什么。

什么是虚拟机?

虚拟机(VM)是计算机系统的仿真。简而言之,它可以在一台计算机的硬件上运行看似多台单独的计算机。

操作系统(OS)及其应用程序共享单个主机服务器或主机服务器池的硬件资源。每个VM都需要自己的基础OS,并且硬件已虚拟化。系统管理程序或虚拟机监视器(Hypervisor)是创建和运行VM的软件。它位于硬件和虚拟机之间,是虚拟化服务器所必需的。

由于虚拟化技术和云服务的出现,IT部门可以采用虚拟机(VM)作为降低成本和提高效率的一种方式。

虚拟机系统架构图

但是,VM会占用大量系统资源。每个VM不仅运行操作系统的完整副本,还需要运行操作系统所需的硬件虚拟副本。这大量消耗RAM和CPU资源。与运行单独的计算机相比,这仍然是经济的,但是对于某些应用程序来说,它可能会过大,这时候就需要容器。

虚拟机的好处

  • 所有的操作系统资源
  • 已有的管理工具
  • 已有的安全工具
  • 众所周知的安全控制

受欢迎的虚拟机提供商

什么是容器?

使用容器,可以像虚拟机(VM)一样虚拟化基础计算机,而无需虚拟化OS。

容器位于物理服务器及其主机操作系统(通常为Linux或Windows)的顶部。每个容器共享主机OS内核,通常也共享二进制文件和库。共享组件是只读的。共享操作系统资源(例如库)可以大大减少重现操作系统代码的需求,并且意味着服务器可以通过安装单个操作系统来运行多个工作负载。因此,容器非常轻便-它们只有几兆字节大小,只需几秒钟即可启动。与容器相比,VM运行需要几分钟,并且比等效容器大一个数量级。

与VM相比,容器需要操作系统,支持程序和库以及用于运行特定程序的系统资源。这意味着在单个服务器上放置容器的应用程序的数量是在VM上的两倍至三倍。此外,使用容器,您可以为开发,测试和部署创建一个可移植的,一致的操作环境

集装箱系统架构图

容器种类

Linux容器(LXC) — 最初的Linux容器技术是Linux容器,通常称为LXC。LXC是Linux操作系统级别的虚拟化方法,用于在单个主机上运行多个隔离的Linux系统。

Docker — Docker起初是一个构建单一应用程序LXC容器的项目,它对LXC进行了多次改造,使容器更加便携和灵活使用。后来它变成了自己的容器运行环境。从较高的层次上讲,Docker是一个Linux实用程序,可以有效地创建,运送和运行容器。

集装箱的好处

  • 减少IT管理资源
  • 减少快照的大小
  • 更快地部署应用程序
  • 减少和简化安全更新
  • 更少的代码来传输,迁移和上传工作负载

受欢迎的集装箱供应商

虚拟机使用与容器使用

容器和VM都有优点和缺点,最终的决定取决于您的特定需求,但是有一些通用的经验法则。

  • 当您需要在服务器上运行多个应用程序或需要管理多种操作系统时,VM是运行需要所有操作系统资源和应用程序的更好选择。
  • 当您的首要任务是在最少数量的服务器上最大化运行的应用程序数量时,容器是一个更好的选择。

虚拟机与容器有什么不同

虚拟机 容器
重量级 轻量级
性能有限 本机性能
每个VM都在自己的OS中运行 所有容器共享主机操作系统
硬件级虚拟化 操作系统虚拟化
启动时间(以分钟为单位) 启动时间(以毫秒为单位)
分配所需的内存 需要更少的内存空间
完全隔离,因此更安全 进程级隔离,可能不太安全

对于大多数人来说,能够同时包含这两者是最理想的。在当前的虚拟化技术下,VM的灵活性和容器的轻量共同作用,以提供具有最大功能的环境。

如果您的组织正在运行同一操作系统的大量实例,则应研究容器是否合适。它们可能会为您节省大量的时间和金钱。

猜你喜欢

转载自blog.csdn.net/ThinkWon/article/details/107476886