容器化是一种软件开发方法,其中应用程序或服务、其依赖项和其配置(抽象为部署清单文件)作为容器映像打包在一起。容器化应用程序可以作为一个单元进行测试,并作为容器映像实例部署到主机操作系统(OS)。
正如运输集装箱允许通过船舶、火车或卡车运输货物,而不考虑其中的货物一样,软件容器作为软件部署的标准单元,可以包含不同的代码和依赖项。通过这种方式,容器化软件使开发人员和IT专业人员能够在几乎不需要修改的情况下跨环境部署它们。
容器还将共享操作系统上的应用程序彼此隔离。容器化应用程序在容器主机上运行,容器主机反过来在操作系统(Linux或Windows)上运行。因此,容器的占用空间比虚拟机(VM)映像小得多。
每个容器可以运行一个完整的web应用程序或服务,如图2-1所示。在本例中,Docker host是一个容器主机,App1、App2、Svc 1和Svc 2是容器化的应用程序或服务。