全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-21 5 分钟 ✍️ juanwangdev

CPU 配额与限制

容器 CPU 限制防止单容器占满宿主资源,下面介绍配置方法。

--cpus 参数

Bash
# 限制使用 1.5 个 CPU
docker run -d --cpus=1.5 my-app

# 限制使用 0.5 个 CPU(50%)
docker run -d --cpus=0.5 my-app

--cpus 限制容器可使用的 CPU 核心数,1.5 表示 1 个完整核心 + 50%。

--cpu-shares

Bash
# 设置 CPU 权重(默认 1024)
docker run -d --cpu-shares=512 my-app-low
docker run -d --cpu-shares=2048 my-app-high

权重分配:

  • 容器争抢 CPU 时按权重分配
  • 512:1024:2048 = 1:2:4 比例
  • 仅在 CPU 紧张时生效

--cpuset-cpus

Bash
# 绑定特定 CPU 核心
docker run -d --cpuset-cpus="0,1" my-app  # 仅使用核心 0 和 1
docker run -d --cpuset-cpus="0-3" my-app  # 使用核心 0-3

Compose 配置

YAML
version: '3.8'

services:
  app:
    image: my-app
    deploy:
      resources:
        limits:
          cpus: '1.5'
        reservations:
          cpus: '0.5'

查看 CPU 使用

Bash
# 实时监控
docker stats my-app

# 查看容器 CPU 限制
docker inspect my-app | grep -A 5 "Cpu"

# 输出
"CpuShares": 1024,
"CpuPeriod": 100000,
"CpuQuota": 150000,
"CpusetCpus": "0,1"

更新限制

Bash
# 运行时更新
docker update --cpus=2.0 my-app
docker update --cpu-shares=2048 my-app

要点总结

  • --cpus 限制容器使用 CPU 核心数(如 1.5)
  • --cpu-shares 设置权重,CPU 紧张时按比例分配
  • --cpuset-cpus 绑定特定 CPU 核心
  • Compose 通过 deploy.resources 配置限制和预留
  • docker update 运行时修改限制,无需重启容器

📝 发现内容有误?点击此处直接编辑

← 上一篇 非 root 用户运行
下一篇 → 内存限制与 OOM
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库