容器和 Docker 简介Introduction to containers and Docker

本文内容

容器化是在其中应用程序或服务、 其依赖项,以及其配置 (抽象化为部署清单文件) 一起打包为容器映像的软件开发方法。然后可以测试容器化应用程序作为一个单元并将其部署为容器映像实例对主机操作系统 (OS)。

就像船只、火车或卡车运输集装箱而不论其内部的货物一样,软件容器充当软件部署的标准单元,其中可以包含不同的代码和依赖项。按照这种方式容器化软件,开发人员和 IT 专业人员只需进行极少修改或不修改,即可将其部署到不同的环境。

容器还会在共享 OS 上将应用程序彼此隔离开。容器化应用程序在容器主机上运行,而容器主机在 OS(Linux 或 Windows)上运行。因此,容器具有太多占用比虚拟机 (VM) 映像小。

每个容器可以运行整个 web 应用程序或服务,图 1-1 中所示。在此示例中,Docker 主机是容器主机,而 App1、 App2、 Svc1 和 Svc2 是容器化应用程序或服务。

两个应用程序和两个 VM 或物理服务器的操作系统上运行的服务

图 1-1在一个容器主机上运行多个容器

可从容器化获得的另一个优势是可伸缩性。通过为短期任务创建新容器,可以快速扩大。从应用程序的角度来看,实例化映像(创建容器)类似于实例化 服务或 Web 应用等进程。但出于可靠性考虑,在多个主机服务器上运行同一映像的多个实例时,通常要使每个容器(映像实例)在不同容错域中的不同主机服务器或 VM 中运行。

简单地说,容器提供隔离、 可移植性、 灵活性、 可缩放性和控制的优势跨整个应用程序生命周期工作流。最重要的好处是 Dev 和 Ops 之间提供环境隔离。

下一页