Skip to content

Latest commit

 

History

History
15 lines (12 loc) · 973 Bytes

File metadata and controls

15 lines (12 loc) · 973 Bytes

认识容器

什么是容器

linux上最简单的回答是Namespace和Cgroups。它们可以让程序在一个资源可控的独立(隔离)环境中运行,这就是容器(容器共享宿主机内核)

Namespace(保证资源的隔离)

  • PID Namespace 负责隔离不同容器的进程,
  • Network Namespace 又负责管理网络环境的隔离,
  • Mount Namespace 管理文件系统的隔离

Cgroups (可以对指定的进程做各种计算机资源的限制,比如限制 CPU 的使用率,内存使用量,IO 设备的流量等等)

  • CPU 子系统,用来限制一个控制组(一组进程,你可以理解为一个容器里所有的进程)可使用的最大 CPU。
  • memory 子系统,用来限制一个控制组最大的内存使用量。
  • pids 子系统,用来限制一个控制组里最多可以运行多少个进程。
  • cpuset 子系统, 这个子系统来限制一个控制组里的进程可以在哪几个物理 CPU 上运行。