我无法找到这个问题的直接答案,但这里是:
假设我有一个最大打开文件数为 1024 的主机:
[root@host]# ulimit -a
open files (-n) 1024
以及在该主机中运行的 docker 容器:
[root@container]# ulimit -a
open files (-n) 1048576
如果我尝试打开超过 1024 个文件,我会在容器中遇到任何问题吗?我认为在这种情况下容器的真正限制是 1024 个文件。你怎么看?
最佳答案
真正的限制是 1048576。
看看这张图片的右边部分,它表明容器基本上只是孤立的进程,运行在同一个操作系统上:
由于容器中的每个系统调用都将由主机操作系统直接处理,因此显示的 ulimit (1048576) 直接来自主机操作系统,这就是将使用的值。
ulimit 的差异可能是由 a Docker configuration 引起的,例如。
(请注意,对于 VMs,这将有所不同:客户操作系统可能显示值 1048576,但打开的调用最终将由主机操作系统处理,这将强加限制为 1024)
关于docker - Docker 主机与容器中的 Ulimits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46211558/