如何在Docker容器中获取最大数量的subprocess?
我试图在一个Docker容器中运行以下程序,该容器以--privileged
:
root@1df00aaf673d:~# cat > sysconf_test.c #include <unistd.h> #include <errno.h> #include <stdio.h> int main() { long n = sysconf(_SC_CHILD_MAX); printf("%ld %d\n", n, errno); return 0; } root@1df00aaf673d:~# gcc sysconf_test.c ; ./a.out -1 0
通过sysconf
手册页 ,“如果name对应于最大或最小限制,并且该限制是不确定的,则返回-1,并且不更改errno。 有没有办法让它确定,也许通过传递一个选项到docker run
命令?
我会回答我自己的问题:看起来, sysconf
返回-1L
为“无限”,虽然手册页不拼出来:
[root@llg00amn ~]# ulimit -u 120996 [root@llg00amn ~]# docker run -ti debian /bin/bash root@5668a7acb957:/# ulimit -u unlimited
将ulimit
设置为实际数字后,程序运行正常,并返回正确的结果。