📜  使用 Docker 容器进行虚拟化

📅  最后修改于: 2021-10-20 10:27:59             🧑  作者: Mango

在软件驱动的世界中,无处不在和易于部署且开销最小是主要要求,云会迅速在每张图片中占据一席之地。容器正在这片广阔的云空间中创造自己的标志,世界顶级技术和 IT 机构依赖于其基础设施必需品的概念。 Facebook、谷歌和微软等科技巨头在其简化的流程中使用容器来促进安全、轻松地部署到云生产环境中。这种使用容器的部署提供了一种技术,可以将应用程序从运行时环境中抽象出来;很像虚拟机,这当然是通过虚拟化来完成的。

这里要探讨的两个核心概念是:

  1. 容器是如何基于虚拟化技术构建的
  2. 他们如何提供虚拟机的替代方案

1.要回答容器如何实现虚拟化,让我们详细讨论什么是虚拟化以及容器如何与这个概念发挥作用。

虚拟化是一种技术,它本质上会产生一种资源的错觉,例如桌面、存储、网络或操作系统。设备、应用程序和人类用户拥有与这些资源交互的能力。这种也称为虚拟化的错觉扩展了传统系统的能力,这些系统受到自身物理资源的限制。

现在,容器为部署在其中的应用程序启用了这种虚拟化。容器中的应用程序独立运行,与任何物理资源隔离。容器通过提供可根据需要扩展或缩小的受控环境来虚拟化其中的操作系统、CPU、内存、存储和网络资源。容器还将应用程序及其依赖项和必要的文件打包在一起,这使得应用程序可以部署在任何环境中,而无需配置服务器、硬件或软件

这听起来仍然类似于通过虚拟机实现的虚拟化,对吗?
因此,在我们了解更多容器可以做什么之前,让我们先弄清楚容器与虚拟机的区别

2.虚拟机是硬件虚拟化的一种形式。硬件与其他资源在逻辑上是分开的。硬件可以是任何系统,例如称为主机的台式机(带有硬件和自己的操作系统),可以在主机上运行多个虚拟机或来宾计算机,每个虚拟机都有自己独立的操作系统。这是通过称为管理程序的固件实现的。

容器(如虚拟机)在主机上运行。它们还可以根据需要进行控制,并提供应用程序与运行时环境的隔离。然而,容器的目标是操作系统虚拟化。与虚拟机不同,在容器化系统中,客户操作系统不需要安装在主机系统上。相反,底层主机操作系统由包含应用程序代码的所有容器实例共享。这使得容器重量轻并减少了与虚拟机相关的操作系统开销,例如修补、升级、驱动程序支持等。此外,它减少了单个操作系统的存在所消耗的主机资源量。

容器的好处:

  • 可以部署应用程序而无需担心运行时环境。因此,应用程序可以轻松地在软件开发周期中移动,并且可以在任何地方运行,例如,在 Mac OS、Linux、Windows 上,甚至在数据中心。这样可以减少检查环境的时间,更多的时间可以用于开发新功能。
  • 具有应用程序的多个容器可以在共享操作系统的同一物理资源实例上运行。这些轻量级容器可以快速有效地利用可用的计算资源。
  • 容器彼此隔离,这为开发人员提供了将应用服务拆分到不同容器中的余地。这些容器不共享任何依赖项,每个容器都可以由开发人员随意操作和更新。
  • 容器具有版本控制的内置功能。

有多种用于部署容器的平台,例如 Docker、Google Kubernetes、Core OS、Red Hat 和 AWS。然而,由于 Docker Inc. 在该领域的极度流行,容器与术语“Docker 容器”同义。

相关文章
Linux 虚拟化:Linux 容器 (lxc)