Namespace
Namespace(命名空间)是一种Linux操作系统层级的资源隔离技术,能够将 Linux 的全局资源,划分为不同的 namespace 资源,彼此的进程和资源是相互隔离。
命名空间作为内核技术为docker提供了资源隔离
。namespace 对以下6种资源做隔离:
UTS namespace
提供了主机名隔离,这样每个容器就拥有独立的 hostname 和 domain 了。
PID namespace
完成的是进程ID的隔离,每个容器都有自己的进程环境,保证了容器的 init 进程是以 1 号进程来启动的。
IPC namespace
实现了进程间通信的隔离,只有同一个 Namespace 下的进程才能相互通信。
Mount namespace
通过隔离文件系统的挂载点来达到对文件系统的隔离。
Network namespace
实现了操作系统层面的网络资源隔离,包括网络设备接口、IP、路由表、Sockets 套接字等资源。
User namespace
主要隔离了用户与安全的标识符和属性,包括 User ID、Group ID、root 目录以及特殊权限。
CGroup
CGroup全称是control groups控制组,被整合在linux内核。cgroup可以控制、限制、隔离进程所需要的物理资源,包括cpu、内存、IO等。
控制组作为内核技术为d