19.2 控制组资源控制的安全
控制组是Linux容器机制中的另外一个关键组件,它负责实现资源的审计和限制。
控制组机制的相关技术出现于2006年,Linux内核从2.6.24版本开始正式引入该技术。
当用户执行docker run命令启动一个Docker容器时,Docker将通过Linux相关的调用,在后台为容器创建一个独立的控制组策略集合,该集合将限制容器内应用对资源的消耗。
控制组提供了很多有用的特性。它确保各个容器可以公平地分享主机的内存、CPU、磁盘IO等资源;当然,更重要的是,通过控制组,可以限制容器对资源的占用,确保了当某个容器对资源消耗过大时,不会影响到本地主机系统和其他容器。
尽管控制组不负责隔离容器之间相互访问、处理数据和进程,但是它在防止恶意攻击特别是拒绝服务攻击(DDoS)方面是十分有效的。
对于支持多用户的服务平台(比如公有的各种Paas、容器云)上,控制组尤其重要。例如,当个别应用容器出现异常的时候,可以保证本地系统和其他容器正常运行而不受影响,从而避免引发“雪崩”灾难。
