千家信息网

docker 限制容器对CPU的使用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,上节学习了如何限制容器对内存的使用,本节我们来看CPU。默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。Docker 可以通过-c或--cpu-shares设置容器使用 CPU
千家信息网最后更新 2026年11月02日docker 限制容器对CPU的使用

上节学习了如何限制容器对内存的使用,本节我们来看CPU。

默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。

Docker 可以通过-c或--cpu-shares设置容器使用 CPU 的权重。如果不指定,默认值为 1024。

与内存限额不同,通过-c设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。某个容器最终能分配到的 CPU 资源取决于它的 cpu share 占所有容器 cpu share 总和的比例。

换句话说:通过 cpu share 可以设置容器使用 CPU 的优先级。

比如在 host 中启动了两个容器:

docker run --name "container_A" -c 1024 ubuntudocker run --name "container_B" -c 512 ubuntu

container_A 的 cpu share 1024,是 container_B 的两倍。当两个容器都需要 CPU 资源时,container_A 可以得到的 CPU 是 container_B 的两倍。

需要特别注意的是,这种按权重分配 CPU 只会发生在 CPU 资源紧张的情况下。如果 container_A 处于空闲状态,这时,为了充分利用 CPU 资源,container_B 也可以分配到全部可用的 CPU。

下面我们继续用 progrium/stress 做实验。

1、启动 container_A,cpu share 为 1024:

--cpu用来设置工作线程的数量。因为当前 host 只有 1 颗 CPU,所以一个工作线程就能将 CPU 压满。如果 host 有多颗 CPU,则需要相应增加--cpu的数量。

2、启动 container_B,cpu share 为 512:

3、在 host 中执行top,查看容器对 CPU 的使用情况:


container_A 消耗的 CPU 是 container_B 的两倍。

4、现在暂停 container_A:

5、top显示 container_B 在 container_A 空闲的情况下能够用满整颗 CPU:

CPU限额就讨论到这里,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

容器 资源 情况 数量 权重 分配 限制 两个 空闲 线程 学习 工作 不同 平等 优先级 内存 内容 取决于 只有 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 互联网科技官网 互联网科技有限公司图片 互联网与科技金融数据 互联网科技小贷 深圳齐家互联网科技 碳银互联网科技有限公司 互联网科技有限公司 翻译 卓越科技互联网 招聘 成都互联网科技公司100强 互联网时代科技改变生活 广州市恰铎互联网科技有限公司 乌苏新华互联网科技做什么的 洛阳共同富裕互联网科技有限公司 特约风豹互联网科技为什么扣费 山东有哪些互联网科技公司 雨阳互联网卡科技有限公司 互联网科技企业商标注意事项 长沙渺峰互联网科技有限公司 互联网科技创业计划的风险分析 咖啡豆 科技赋能下的互联网金融 互联网科技公司的优势 互联网金融科技委员会 汉立互联网科技有限公司联系电话 阿里巴巴算科技企业还是互联网 互联网系的金融科技公司 高科技互联网套路 浙南科技城互联网大厦招聘 广州有谷有贝互联网科技有限公司
0