【发布时间】:2015-01-30 14:22:57
【问题描述】:
我正在尝试将 docker 集装箱内的叉形炸弹造成的损坏降至最低。
我正在使用pam_limits 和/etc/security/limits.conf 文件是
1000:1128 hard nproc 40
1000:1128 soft nproc 40
这意味着任何 id 在 [1000..1128] 范围内的用户最多可以有 40 个进程。如果我由具有此类 id 的用户在 shell 中运行 forkbomb,这可以正常工作。
但是当我在 docker 容器中运行 fork 炸弹时,这些限制没有被应用,所以当我运行命令时
# docker run -u 1000 ubuntu bash -c ":() { : | : & }; :; while [[ true ]]; do sleep 1; done"
我有尽可能多的进程,所有这些进程都属于 id=1000 的用户。
怎么了?我该如何解决?
【问题讨论】: