首页/ 学科题库/ docker/ CPU 配额与限制
docker 实战教程

CPU 配额与限制

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 运行时修改限制,无需重启容器
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 AppArmor/Seccomp 配置 下一篇 → 内存限制与 OOM