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

为单个用户限制docker容器的资源,docker,resources,scheduling,ulimit,Docker,Resources,Scheduling,Ulimit,对于docker容器,您可以在docker run上设置CPU限制(例如--CPU配额--CPU共享)和内存限制(--memory)。还可以通过--ulimit为用户设置全局nproc限制 假设两个不同的用户在一个容器中运行工作负载。是否有办法仅在一个特定docker容器内(而非系统全局)为单个用户设置限制 例如,对于--ulimit nproc=100,无法指定允许用户在docker容器内运行最多n个进程。例如,如果一个用户已经在容器外运行了40个进程,则允许他在容器内运行60个进程。如果设置

对于docker容器,您可以在
docker run
上设置CPU限制(例如
--CPU配额
--CPU共享
)和内存限制(
--memory
)。还可以通过
--ulimit
为用户设置全局
nproc
限制

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

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


因此,我正在寻找一种方法,以用户为基础对单个docker容器实施CPU、内存和进程数限制(即使没有这些限制的其他docker容器在同一系统上运行)。为每个用户启动docker容器不是一个选项。

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

docker运行-u user1--cpu共享=12。。。myimage

docker run-u user2--cpu共享=24…myimage

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


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

这将启动两个容器,在我的场景中,一个容器中有多个用户。