限制单个用户的docker容器的资源

时间:2017-05-17 09:02:01

标签: docker resources scheduling ulimit

对于泊坞窗容器,您可以在--cpu-quota上设置CPU限制(例如--cpu-shares --memory)和内存限制(docker run)。您还可以通过nproc为用户设置全局--ulimit限制。

假设有两个不同的用户在一个容器中运行工作负载。有没有办法只为一个特定的docker容器内的单个用户设置限制(不是系统全局)?

例如,对于--ulimit nproc=100,无法指定允许用户在docker容器内运行最多n个进程。例如,如果用户已在容器外运行40个进程,则允许他在容器内运行60个进程。如果您设置ulimit nproc=40并且40个进程将在容器外运行,则不允许他在容器内启动新进程。

所以我正在寻找一种方法来为单个docker容器强制执行CPU,内存和进程号限制(即使没有这些限制的其他docker容器在同一系统上运行)。不能为每个用户启动docker容器。

1 个答案:

答案 0 :(得分:0)

您可以使用相同的myimage启动2个不同的命令,例如

docker run -u user1 --cpu-shares=12... myimage

docker run -u user2 --cpu-shares=24...myimage

您只需在创建图像时创建2个用户

不确定这是否回答了您的问题