我们正在尝试限制整个容器的打开文件总数。使用ulimit限制主机中的开放fds。据我们所知,docker容器作为主机操作系统上的进程运行,因此我们应该能够使用ulimit限制每个docker容器的打开文件总数。
但是我们能够跨越容器中打开文件的总数[主机上的ulimit值]。
docker是否有明确定义的机制来限制每个容器打开文件的数量?
答案 0 :(得分:5)
Ulimits是命名空间,因此不会自动从主机继承。您可以使用function reverseArray(n, arrIn) {
// Splice splits the array in 2 starting at 0 index going n long
var arrOut = arrIn.splice(0,n);
// reverse is pretty straight forward
arrOut = arrOut.reverse();
// Concat joins the two together
return arrOut.concat(arrIn);
}
和--ulimit
上的docker run
标记为容器指定ulimits。有关详细信息,请参阅文档的Set ulimits in a container部分;
答案 1 :(得分:0)
-ulimit将限制每个进程的打开文件描述符的数量。容器中的每个子进程将获得与父进程相同的ulimit。黑客仍然可以通过编写产生多个子进程并使每个子进程用尽文件描述符的函数来造成破坏。 换句话说,没有任何东西可以限制该进程及其所有子进程的文件描述符总数。这将是有用的。