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运行时修改限制,无需重启容器
📝 发现内容有误?点击此处直接编辑