「CONTAINERIZATION-TECHNOLOGY」- 容器技术 | Container | 容器 | 容器化

该部分笔记整理:与 Container、CNC(云原生)、Docker、Kubernetes 有关的内容,以及相关问题的解决办法;

认识

容器(Container)是一种操作系统级别的虚拟化技术。与虚拟机相比,容器更轻量和高效。

容器技术是一种虚拟化技术,用于将应用程序及其所有依赖项打包成一个独立、可移植的容器。它通过隔离应用程序的运行环境,使其能够在不同的操作系统、硬件和云平台上运行;

组成

容器技术的核心是容器引擎,最流行的引擎是 Docker。容器引擎使用操作系统的内核资源,提供了一种轻量级的虚拟化方式,使得应用程序能够在一个独立的、隔离的运行环境中运行。每个容器都包含了应用程序及其所有依赖项,如代码、运行时环境、库文件等。这使得容器能够快速启动、停止和迁移,而且在不同的环境中具有一致的运行行为;

容器更准确的定义是:容器是容器镜像(image)运行时的实例。

容器镜像:

1)容器镜像打包了应用及其依赖(包含完整操作系统的所有文件和目录)。

2)只需在隔离的“沙盒”中运行容器镜像,无需进行任何修改和配置即可运行应用。

3)容器镜像核心在于实现应用及其运行环境整体打包以及打包格式统一。实现本地环境与云端环境的高一致性。

以 Linux 为例,操作系统区分内核空间(Kernel Space)和用户空间(User Space)。Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间。一个操作系统的内核允许有多个隔离的用户空间实例。

Image

基于联合文件系统的一种层次的结构。简单说,组成操作系统目录结构的一些文件,这些文件保证了系统的运行。再简单说,就是个操作系统,只不过移除了一些不必要的文件;

Container

运行中的镜像;

Image 是 Docker 生命周期中的打包或构建阶段,而 Container 则是启动或执行阶段;

Container Registry

用于保存镜像的仓库。公有,私有。公用,供搭建使用,Docker Hub。私有,搭建自己的 Register 中心;

构造

容器技术实现

Docker 是目前最流行的容器技术,它提供了一种标准的方式来创建、打包和部署容器。
Podman
containerd

OpenVZ 容器技术:OpenVZ 是一种开源的容器技术,它可以在 Linux 系统上运行多个容器,并将它们隔离开来。OpenVZ 技术具有较高的性能和安全性,可以让用户快速部署和管理虚拟机。

性质

容器技术的优势包括灵活性、可移植性和资源利用率高;
容器可以更快速地部署和扩展应用程序,提供了更好的开发和运维效率;
同时,容器还可以隔离应用程序,使其之间互不干扰,提高了系统的安全性和稳定性;

应用打包,简化管理

容器的好处在于可以打包应用及其运行环境。这允许一个应用可以快速的“运输”,使得“开发-测试-部署-运维”的过程极大的简化。

容器与虚拟机对比

与虚拟机相比,容器共享操作系统内核,独立性较弱,仅提供进程级别的隔离性。
容器的启动速度、运行性能和对服务器的资源利用率均高于虚拟机。

应用

容器技术广泛应用于云计算、微服务架构、持续集成和持续部署等领域。它为应用程序的开发、测试和部署提供了便利,成为现代软件开发的重要组成部分;

容器管理平台

容器引擎只是单节点上管理容器的守护进程,而企业数据中心或者公有云管理的节点规模十分庞大。为实现大规模的容器管理,需要一个独立的容器管理平台。

一个成熟的容器管理平台至少包括两个主要功能:应用编排管理;集群资源调度;

容器集群资源管理和调度:收集被管理节点的资源状态,完成数以万计规模的节点的资源管理;同时根据特定的调度策略和算法,处理用户的容器资源申请请求。

应用编排和管理:针对数据中心不同类型的应用,比如 Web 服务,批量任务处理等,抽象不同类型应用的管理基础能力,并通过 API 暴露给用户使用,用户开发和部署应用时可以利用容器管理平台的上述 API 能力实现对应用的自动化管理。用户通过应用编排和管理还可以实现应用模版定义。用户可以基于应用模版一键部署应用,实现应用灰度升级等,大大简化了应用的管理和部署。

参考

HCIP-Data Center Network V1.0 培训材料