如何限制单个docker集装箱的工艺编号

需求:

每个用户都有一个单独的容器,目标是限制容器内的进程数量。 不同的容器不能共享可用的进程数量。 官方文档提供的解决scheme是使用–ulimit标志

docker run -d -u daemon --ulimit nproc=3 busybox top 

此方法需要在容器中存在帐户,这意味着该帐户或者需要在Dockfile中创build,或者由入口点脚本dynamic添加。

解决方法:

在容器中,添加具有指定uid的用户和/etc/security/limits.conf中的nproc限制。 当切换到新添加的用户时,通过input命令ulimit -a,最大用户进程已经生效

testing:

在上一个容器中使用bash叉炸弹进行testing后,主机和其他容器不会受到发出的容器的影响。

题:

我的问题是上述解决方法似乎棘手,它依靠脚本来dynamic添加用户,并要求唯一的uid(可以通过在原始的uid上添加一个偏移来保证)

顺便说一下,在某些情况下,用户容器可能被重新安排到其他主机。 我想知道是否有更优雅或正式推荐的方式来满足这一需求。