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