最权威方式是运行 docker run --help 查看所有资源限制参数,包括 --cpus、--cpuset-cpus、--cpu-shares、-m、--memory-swap 等;还可查阅官方文档了解原理与组合规则;用 docker inspect 查已运行容器的实际配置;用 docker stats 实时验证限制效果。

直接运行 docker run --help 就能看到所有支持的资源限制参数,这是最权威、最及时的方式。
查参数:用 help 命令看完整列表
在终端中执行:
docker run --help
输出中会列出所有与资源相关的选项,比如:
-
--cpus=:限制 CPU 核心数(如
--cpus="1.5") -
--cpuset-cpus=:绑定特定 CPU 核心(如
--cpuset-cpus="0-2") - --cpu-shares=:设置 CPU 权重(默认 1024,值越大竞争时越优先)
- -m / --memory=:限制最大物理内存(最小允许 4m)
-
--memory-swap=:内存 + swap 总上限(设为与
--memory相同可禁用 swap) - --memory-reservation=:软性内存下限(压力大时才触发限制)
查文档:官方在线手册更详细
访问 Docker 官方文档的 Resource constraints 页面,里面包含:
- 每个参数的底层原理(如 Cgroups 映射关系)
- 参数组合使用的注意事项(例如
--memory和--memory-swap的配合逻辑) - CPU 时间配额(
--cpu-period和--cpu-quota)等进阶用法 - 内存 OOM 行为说明和调试建议
查当前容器配置:inspect 看实际生效值
对已运行的容器,用 docker inspect 查看真实设置:
docker inspect
重点找 HostConfig 下的字段:
-
"Memory": 536870912→ 对应-m 512m(单位是字节) -
"NanoCpus": 1000000000→ 对应--cpus="1.0"(1e9 纳秒 = 1 秒 = 1 核) -
"CpuQuota": 50000, "CpuPeriod": 100000→ 实际配额比例(50% CPU)
查实时使用情况:stats 辅助验证效果
运行中观察是否真被限制住:
docker stats
输出里会显示:
- CPU %(是否稳定在预期上限附近)
- MEM USAGE / LIMIT(确认内存没超限,避免 OOM)
- NET I/O、BLOCK I/O(辅助判断 IO 是否成瓶颈)











