镜像(Image)是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的配置参数。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
容器(Container)是镜像运行的实例,容器可以被创建、启动、停止、删除、暂停等。
容器运行在节点上,节点可以是虚拟机或者物理机器,每个节点都有一些必要的服务以运行容器组,并且它们都可以通过主节点来管理,依赖于一个集群环境。
由一组节点构成,通过相关技术组合而成的计算机群体,为容器运行提供计算资源池。
运维人员通常会提供一个镜像为基础模版,安装通用的开发组件,形成基础镜像。
将应用程序源代码注入基础镜像并汇编新镜像,生成可实际运行使用的业务镜像,这一过程称为镜像构建。
攻击者通过劫持容器化业务逻辑,获得了容器内某种权限下的命令执行能力,并进一步获得该容器所在的宿主机上某种权限下的命令执行能力。
容器中运行的是微服务应用,每个微服务应用组件的行为相对单一,用以完成固定的任务。另外,容器的架构具有云原生概念中要求的不可变基础设施的特性,业务容器的行为是全部来源于其启动镜像的要求,任何改变重启后就会被还原。因此容器的行为具有单一性和不变性,是能够被预测可衡量。
将某个容器业务看作一个实体,它的进程信息、读写文件、网络传输、写内核等正常行为记录下来形成一个行为画像,即一个行为建模过程。
以虚拟网络的形式提供容器间的通信,常见的网络组件如Calico、OVS、MacVlan、Flannel等各种云原生网络组件。