使用Docker容器进行虚拟化

在一个软件驱动的世界中,无所不在、易于部署且开销最小是主要需求,云在每一张图片中都迅速占据了一席之地。集装箱在这片广袤的云空间中创造了自己的标志,拥有世界顶级的技术和IT设施,它们的基础设施需要依赖于这一概念。Facebook、谷歌和微软等科技巨头在其流线型流程中使用容器,以方便安全、轻松地部署到云生产环境中。这种使用容器的部署提供了一种技术,将应用程序从运行时环境中抽象出来;很像虚拟机,这当然是通过虚拟化实现的。

null

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

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

1. 为了回答容器是如何实现虚拟化的,让我们详细讨论什么是虚拟化,以及容器是如何利用这个概念的。

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

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

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

2. 虚拟机是硬件虚拟化的一种形式。硬件在逻辑上与其他资源分离。硬件可以是任何系统,比如称为主机的台式机(带有硬件和自己的操作系统),其中可以运行多个虚拟机或来宾机,每个虚拟机都有各自的操作系统。这是由一个名为hypervisor的固件实现的。

图片[1]-使用Docker容器进行虚拟化-yiteyi-C++库

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

集装箱的好处:

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

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享