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

进程数与 PID 限制

Fork 炸弹可耗尽宿主进程资源,下面介绍容器进程数限制方法。

--pids-limit 参数

Bash
# 限制容器最多 100 个进程
docker run -d --pids-limit=100 my-app

# 不限制(默认,不推荐)
docker run -d --pids-limit=-1 my-app

--pids-limit 限制容器可创建的进程数,防止 Fork 炸弹攻击。

Fork 炸弹示例

Bash
# 危险的 Fork 炸弹(不要执行!)
:(){ :|:& };:

# 无限创建进程,耗尽 PID 资源
# 导致系统无法创建新进程

Compose 配置

YAML
version: '3.8'

services:
  app:
    image: my-app
    deploy:
      resources:
        limits:
          pids: 100

查看进程数

Bash
# 查看容器进程
docker top my-app

# 统计进程数
docker top my-app | wc -l

# 查看容器 PID 限制
docker inspect my-app | grep "PidsLimit"

# 输出
"PidsLimit": 100

更新限制

Bash
# 运行时更新
docker update --pids-limit=200 my-app

推荐配置

场景推荐限制
Web 服务50-100
Worker20-50
数据库100-200
开发容器200-500

进程监控

Bash
# 查看容器进程树
docker exec my-app ps auxf

# 查看进程限制
docker exec my-app cat /sys/fs/cgroup/pids/pids.max

# 输出
100

要点总结

  • --pids-limit 限制容器进程数,防止 Fork 炸弹
  • 生产环境建议设置 50-200,根据应用类型调整
  • Compose 通过 deploy.resources.limits.pids 配置
  • docker top 查看容器进程,docker inspect 查看限制
  • 运行时可 docker update 修改限制

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

← 上一篇 资源监控与统计
下一篇 → Docker in Docker
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

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

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