
行的程序包,其底层为 BootFS(一种文件系统)用于接入宿主机的服
务器操作系统;中层为镜像层,镜像层在程序运行的过程中不可改写,
主要包含上层程序的代码和运行该程序所需的一切系统环境;上层为
可改写的容器,镜像中代码的运行和结果的产生都在容器中进行,各
个容器彼此独立。由于容器镜像文件大小较小,且包含程序运行的一
切条件,可快速实现容器程序的复制,从而实现容器架构的弹性扩容。
以建筑为类比理解容器封装
容器是更轻量、更高效的虚拟机
如果以建房作比,土地对应计算机系统中的“物理服务器”,工程
器械和建筑材料分别对应着“操作系统”和“环境配置”,而“程序代码”是
一个应用程序的内核,类似房屋的设计图。使用虚拟机如同将操作系
统、环境配置和程序代码一同打包从而部署到不同物理服务器上;而
容器则仅仅打包环境配置和程序代码,部署到多个操作系统上。对于
应用开发和提供商而言,下游客户通常已经具备操作系统环境,使用
虚拟机再次打包操作系统会造成资源的浪费并降低程序运行速度。容
器在提供虚拟化运行空间的同时减少了资源的调用,可以被视作更为
轻量、高效的虚拟机。
集群管理方案使容器架构如虎添翼
Kubernetes(K8s)已成为容器编排的事实标准
在容器的企业级应用中,即便是提供单个服务往往也需要大量容
器的共同参与,从而增加了程序运行的复杂性,对大规模容器的编排
管理和程序故障后的排查溯源等需求催生了进一步统筹容器的工具