我找不到这个问题的直接答案,但是这里是:
假设我有一台主机,最多可打开1024个文件:
[root@host]# ulimit -a open files (-n) 1024
和在该主机中运行的docker容器,其中包含:
[root@container]# ulimit -a open files (-n) 1048576
如果我尝试打开1024个以上的文件,那么容器中会有问题吗?我认为在这种情况下,容器的实际限制将是1024个文件。你怎么看?
虽然有点晚,但我只想清除对ulimit差异的怀疑。
如果在运行容器时确实设置了该值,则容器内显示的ulimit值来自主机OS。问题是,为什么从主机运行同一命令时看到的值不同?
这是因为在主机中运行命令时,它显示了其软限制。另一方面,容器显示的值是主机OS的硬限制。原因是允许您越过软限制。因此,从某种意义上说,硬限制实际上是真正的限制。您可以在此链接中找到有关ulimit的更多信息。
要查看硬限制,只需键入以下命令
ulimit -Hn
您将看到值匹配。
注意: 您不能越过硬限制,但如果您是根用户,则可以增加硬限制。