你听说过容器化这个词吗?可能不是。在虚拟环境中使用容器并不新鲜,因为它已经使用了几年。然而,技术改进使得容器化再次流行起来,这要归功于与虚拟机相比它的执行轻巧。在本指南中,我们将告诉您容器化是什么以及它提供了哪些好处。
物理容器与软件容器
为了理解容器化,让我们先考虑一下物理容器。由于集装箱,现代航运业可以有效地运输货物。想象一下,用智能手机将打开的托盘与食品托盘一起运输是多么困难。我们没有专门运输某种货物的船只,而是将所有东西放在单独的容器中,然后将它们全部放在同一艘船上。
IT 世界中解释的容器化的工作方式基本相同。您无需交付完整的操作系统和软件,而是将代码打包到可以在任何地方运行的容器中。由于这些容器通常很小,您可以将大量容器打包到一台计算机上。
与虚拟机相比,容器是什么?
有时,容器会与虚拟机混淆,因为它们以类似的方式工作:在不需要物理硬件的情况下隔离应用程序。然而,它的主要区别在于它的架构。容器与操作系统隔离,使用它们进行操作更容易。我们可以将它们理解为虚拟机的轻量级形式。
容器作为虚拟机具有隔离性,即为数据处理预留空间,以root身份授权,可以挂载文件系统等等。但是,与使用单独的操作系统管理的虚拟机不同,容器与其他容器共享主机系统的内核。
容器化的工作原理
容器架构中的主要部分是 Docker。Docker 是一个基于 Linux 内核的开源软件,负责在操作系统中创建容器,如图 1 所示。在 Master 中,我们提供 支持 docker 容器化的 KVM 虚拟化的虚拟托管服务器。
通过访问单个操作系统内核,Docker 可以管理多个分布式应用程序,这些应用程序运行在自己的容器中。换句话说,集装箱化是基于在单个虚拟货运中实现的软件包。
容器是从 Docker 镜像创建的。虽然镜像是只读的,但 docker 会在镜像文件系统中添加一个读写文件系统来创建容器。创建容器后,Docker 会启动一个网络接口,将容器与本地主机通信。然后将 IP 地址添加到创建的容器并执行指示的进程以执行分配给它的应用程序。
在实现容器化时,每个容器都具有执行程序所需的所有部分:文件、库和允许环境可执行的所有变量。正如我们前面提到的,与虚拟机不同,容器不需要有不同的操作系统。此功能使它们更快更轻,因为它们从服务器或云中消耗的资源更少。
容器化的好处
与虚拟机相比,容器化通过减少资源数量和执行时间来优化虚拟化。此外,公司节省了资金,因为他们不需要具有各自许可证的多个版本的操作系统。就像它发生在虚拟机上一样。
另一方面,容器允许多个应用程序在一台机器上运行。为什么?因为操作系统的内核是共享的。从业务角度来看,这种方法更具吸引力,因为它易于创建、组装和移动应用程序。容器化的其他一些好处如下:
可移植性
容器化可以在任何能够执行容器环境的台式机或笔记本电脑上运行。因为应用程序不需要主机操作系统,所以它们的执行速度更快。几乎任何人都可以在笔记本电脑上打包应用程序并立即在公共或私有云中进行测试,而无需进行修改。应用程序环境和操作环境都保持清洁和最小化。
可扩展性和调制
容器重量轻,不会超载。由于这种能力,容器可以通过根据需求高峰增加或减少服务的系统组来扩展应用程序。在容器中执行可扩展性的最佳工具之一是 Google 的 Kubernetes。Kubernetes 允许自动控制容器的工作负载、它们的交互和实现。
速度
使容器比 VM 更快的原因在于,通过在单个内核中执行隔离的空间环境,占用更少的资源。容器可以在几秒钟内运行,而虚拟机需要更多时间来启动每个操作系统。
Docker 中心镜像
Docker Hub 拥有数千个任何人都可以轻松使用的公共镜像。图像库允许您根据应用程序的特定需求找到容器所需的几乎任何图像。
隔离和监管
在容器化中,应用程序不仅相互隔离,而且还与底层系统隔离。更容易控制容器内的应用程序和系统资源。还确保数据和代码保持隔离。