docker - Docker 主机与容器中的 Ulimits

标签 docker containers ulimit

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

假设我有一个最大打开文件数为 1024 的主机:

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

以及在该主机中运行的 docker 容器:

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

如果我尝试打开超过 1024 个文件,我会在容器中遇到任何问题吗?我认为在这种情况下容器的真正限制是 1024 个文件。你怎么看?

最佳答案

真正的限制是 1048576。

看看这张图片的右边部分,它表明容器基本上只是孤立的进程,运行在同一个操作系统上:

Containers vs. VMs

由于容器中的每个系统调用都将由主机操作系统直接处理,因此显示的 ulimit (1048576) 直接来自主机操作系统,这就是将使用的值。

ulimit 的差异可能是由 a Docker configuration 引起的,例如。

(请注意,对于 VMs,这将有所不同:客户操作系统可能显示值 1048576,但打开的调用最终将由主机操作系统处理,这将强加限制为 1024)

关于docker - Docker 主机与容器中的 Ulimits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46211558/

相关文章:

docker - 存储库 'http://packages.cloud.google.com/apt gcsfuse-bionic InRelease' 未签名

java - 以最少的运行时间存储带递归的斐波那契数列的值

linux - "ulimit -s unlimited"有什么作用?

linux - 仅针对父创建的文件的子文件大小限制?

linux - Docker:将返回值设置为环境变量

Laravel 项目 + 媒体服务器,用于部署在 Docker 上的直播和点播流媒体

reactjs - 是否可以将 React 应用程序配置为在 Kubernetes 中使用容器的环境变量?

azure - 基于事件的容器App是如何被调用的?

docker - 多个 Docker 容器,相同的镜像,不同的配置

可以增加 Mac OS 10.7 (OS X Lion) 中 ulimit 参数的硬限制吗?