我试图将docker容器内的叉炸弹造成的损害降至最低。
我正在使用pam_limits,/etc/security/limits.conf文件是
1000:1128 hard nproc 40
1000:1128 soft nproc 40
Run Code Online (Sandbox Code Playgroud)
这意味着id在[1000..1128]范围内的任何用户最多可以有40个进程。如果我由具有此类ID的用户在shell中运行forkbomb,则此方法效果很好。
但是当我在docker容器中运行fork炸弹时,这些限制没有被应用,所以当我运行命令时
# docker run -u 1000 ubuntu bash -c ":() { : | : & }; :; while [[ true ]]; do sleep 1; done"
Run Code Online (Sandbox Code Playgroud)
我有尽可能多的进程,所有这些进程都属于id = 1000的用户。
怎么了?我该如何解决?
运行容器时,有一个选项可以限制pid的数量:
--pids-limit:调整容器的pids限制(将-1设置为无限)
该命令将是:
docker container run --pids-limit 100 your-image
Run Code Online (Sandbox Code Playgroud)
参考:https : //docs.docker.com/engine/reference/commandline/run/#options
| 归档时间: |
|
| 查看次数: |
3014 次 |
| 最近记录: |