Cgroups在Docker中的应用

之前几篇文章讲述了Linux的Cgroups技术, 《Linux-Cgroups的资源控制》 ,主要是通过Cgroups实现了对进程的资源限制,那么在Docker中是如何运用Cgroups的呢?我们知道Docker是通过Cgroups去做的容器的资源限制和监控,我们下面就以一个实际的容器实例来看下Docker是如何配置Cgroups的:docker run -m 设置内存限制

mark

可以看到Docker通过为每个容器创建Cgroup并通过Cgroup去配置的资源限制和资源监控。

现在通过Go语言来实现一个可以限制资源的容器,配合之前的Namespace使用嘛

mark

通过对Cgroups虚拟文件系统的配置,我们让容器中的把stress进程的内存占用限制到了100m

mark