将Docker容器限制为单个CPU核心

我试图build立一个系统,在一致的条件下运行代码片段,我认为这是可能的一种方式是运行Docker容器中的各种程序具有相同的布局,保留相同数量的内存等。但是,我似乎无法弄清楚如何保持CPU使用率一致。

我似乎可以find最接近的东西是“cpu共享”,如果我了解文档,就可以限制相对于系统上正在运行的其他容器/其他进程的cpu使用情况,以及系统上可用的内容。 他们似乎没有能力限制容器的绝对数量的CPU使用。

理想情况下,我想设置将限于使用一个单一的CPU核心的docker集装箱。 这是可能吗?

如果您使用较新版本的Docker,则可以在--cpuset-cpus=""中使用--cpuset-cpus=""来指定要分配的CPU内核:

 docker run --cpuset-cpus="0" [...] 

如果您使用较旧版本的Docker(<0.9),将LXC用作默认执行环境,则可以使用--lxc-confconfiguration分配的CPU内核:

 docker run --lxc-conf="lxc.cgroup.cpuset.cpus = 0" [...] 

在这两种情况下,只有第一个CPU内核可用于docker集装箱。 Docker帮助中logging了这两个选项。

我试图提供容器资源分配的教程。

https://gist.github.com/afolarin/15d12a476e40c173bf5f