Docker的常用的容器隔离机制简介

时间:2024-12-03 22:07:39

一、Namespace

Linux Namespace是Linux内核提供的一种机制,它用于隔离不同进程的资源视图,使得每个进程都拥有独立的资源空间,从而实现进程之间的隔离和资源管理。通过使用Namespace,可以在一个物理主机上创建多个独立的虚拟环境,每个环境都有自己的进程、文件系统、网络和用户视图。这种隔离机制有助于减少系统环境变更带来的影响,以及避免系统安全性方面的问题。
Linux内核包含了不同类型的Namespace,每个Namespace都有自己的独特属性。
1.1,常见的Namespace类型包括:

  • Mount Namespace:隔离进程的文件系统访问范围,不同Mount Namespace下的进程会有不同的目录层次结构。
  • UTS Namespace:隔离主机名和域名。
    IPC Namespace:隔离进程间通信,防止容器内的进程访问宿主机或其他容器的信号量、消息队列和共享内存。
  • PID Namespace:隔离进程ID,确保容器内的进程拥有独立的进程编号空间。
  • Network Namespace:为容器提供独立的网络环境。
  • User Namespace:提供用户和组ID的隔离,使得容器中的进程拥有自己的用户和组环境,与主机隔。
    1.2,经常使用场景:故障注入,混沌工程测试

二、Cgroups(控制组)

Cgroups作为Linux内核的一项强大功能,在限制进程使用资源和实现容器资源隔离方面发挥着重要作用。通过合理利用Cgroups进行资源管理和隔离,