Redhat对容器的描述
通过利用容器技术,您可以将应用及其整个运行时环境(包括需要的所有文件)一起进行打包和隔离。
容器是轻量级软件包,包含执行包含的软件应用所需的所有依赖关系。这些依赖关系包括系统库、外部第三方代码包和其他操作系统级应用。容器中包含的依赖关系存在于高于操作系统的堆栈级别中。
容器的核心技术是容器化技术,它包括以下几个关键方面:
命名空间(Namespace):利用命名空间隔离不同容器的进程视图,使得每个容器都拥有独立的进程空间。
控制组(Control Group):通过控制组限制和管理容器资源的使用,如CPU、内存、磁盘IO等,确保容器之间互不干扰。
文件系统(Filesystem):使用联合文件系统(UnionFS)实现镜像层叠和写时复制(Copy-on-Write),以及提供容器的文件系统隔离。
容器镜像(Container Image):容器镜像是一个只读的软件包,包含了运行容器所需的文件系统和环境。镜像可以被共享、分发和版本控制。
容器编排(Orchestration):容器编排工具(如Kubernetes)可以自动管理和调度多个容器的部署、伸缩和升级,以及处理容器间的网络通信和服务发现等。
这些技术共同构成了容器化的基础,使得应用程序可以在一个独立、轻量且可移植的容器中运行,便于开发、测试和部署。