什么是容器技术
容器技术也被称为容器虚拟化。是虚拟化技术中的一种。
虚拟化技术主要包括硬件虚拟化,半虚拟化和操作系统虚拟化。容器虚拟化是操作系统虚拟化的一种,是轻量级的虚拟化技术。
虚拟化技术分类
容器技术的核心特性
Cgroups
(1) Cgroups 是什么?
control groups, 是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。
(2) Cgroups的三个组件
-
cgroup 是对进程分组管理的一种基址,一个cgroup包含一组进程,并可以在这个cgroup上增加Linux subsystem 的各种参数配置,将一组进程和一组子系统的系统参数关联起来。
-
Cgroups 实现了一个通用的进程分组框架,不同资源的具体管理则是由不同的子系统管理。一个子系统就是一个资源控制器
- devices: 设备权限控制
- cpuset: 分配指定的CPU和内存节点
- cpu: 控制CPU占用率
- cpuacct: 统计CPU使用情况
- memory: 限制内存的使用上限
- freezer: 暂停Cgroup中的进程
- net_cls: 配合tc(流量控制程序)限制网络带宽。
- net_prio: 设置进程的网络优先级
- huge_tlb: 限制HugeTLB的使用
- perf_event: 允许