我在/etc/security/limits.conf中在docker容器中添加了一些内容来限制user1的最大用户进程数,但是当我在用户user1下的容器中运行bash时,ulimit -a没有反映定义的限制在pam限制文件(/etc/security/limits.conf)中.
我怎样才能让它发挥作用?
我还在/etc/pam.d/common-session中添加了需要pam_limits.so的行会话,所以这不是问题所在.
我用类似sudo docker run的东西启动docker容器–user = user1 –rm = true< container-name>庆典
另外,sudo docker run … –user = user1 … cmd不应用pam限制,但是sudo docker run … –user = root … su user1 -c’cmd’确实如此
最佳答案
/etc/security/limits.conf只是PAM基础结构在引导时读取的文件. Docker容器是刚启动后处于原始状态的内核克隆.这意味着环境的任何继承初始化都不会应用于容器.您必须直接使用’limit’命令来设置过程限制.
更好的方法是使用容器限制,不幸的是当前版本的docker doesn’t support限制了进程数.如@thaJeztah所述,看起来它的支持将在版本1.6出现时出现.