一尘不染

Docker主机与容器中的Ulimits

docker

我找不到这个问题的直接答案,但是这里是:

假设我有一台主机,最多可打开1024个文件:

[root@host]# ulimit -a
open files                      (-n) 1024

和在该主机中运行的docker容器,其中包含:

[root@container]# ulimit -a
open files                      (-n) 1048576

如果我尝试打开1024个以上的文件,那么容器中会有问题吗?我认为在这种情况下,容器的实际限制将是1024个文件。你怎么看?


阅读 455

收藏
2020-06-17

共1个答案

一尘不染

虽然有点晚,但我只想清除对ulimit差异的怀疑。

如果在运行容器时确实设置了该值,则容器内显示的ulimit值来自主机OS。问题是,为什么从主机运行同一命令时看到的值不同?

这是因为在主机中运行命令时,它显示了其软限制。另一方面,容器显示的值是主机OS的硬限制。原因是允许您越过软限制。因此,从某种意义上说,硬限制实际上是真正的限制。您可以在此链接中找到有关ulimit的更多信息。

要查看硬限制,只需键入以下命令

ulimit -Hn

您将看到值匹配。

注意: 您不能越过硬限制,但如果您是根用户,则可以增加硬限制。

2020-06-17