docker容器中的pam限制不起作用

d0c*_*age 6 docker

/etc/security/limits.conf在docker容器中添加了一些内容以限制用户进程的最大数量user1,但是当我在用户下的容器中运行bash时user1,ulimit -a并未反映pam限制文件(/etc/security/limits.conf)中定义的限制.

我怎样才能让它发挥作用?

我还增加了行session required pam_limits.so/etc/pam.d/common-session,所以这不是问题.

我用类似的东西启动docker容器 sudo docker run --user=user1 --rm=true <container-name> bash

此外,sudo docker run ... --user=user1 ... cmd不适用pam限制,但sudo docker run ... --user=root ... su user1 -c 'cmd'确实如此

Vla*_*lad 0

/etc/security/limits.conf只是 PAM 基础结构在启动时读取的一个文件。Docker 容器是内核在刚刚启动后处于原始状态的克隆。这意味着继承的环境初始化都不会应用于容器。您必须直接使用“limit”命令来设置进程限制。

更好的方法是使用容器限制,不幸的是当前版本的 docker不支持进程数量限制。正如 @thaJeztah 所提到的,看起来支持将在 1.6 版本发布时提供。