docker 守护进程内容器的 ulimit 是否可以高于守护进程本身的限制?
Docker 文档没有提及任何有关此内容:
从 :https://docs.docker.com/engine/reference/commandline/dockerd/#default-ulimit-settings
--default-ulimit 允许您设置用于所有容器的默认 ulimit 选项。它采用与 docker run 的 --ulimit 相同的选项。如果未设置这些默认值,则 ulimit 设置将从 Docker 守护程序继承(如果未在 docker run 上设置)。传递给 docker run 的任何 --ulimit 选项都将覆盖这些默认值。
答案1
我已经检查过 Amazon Linux 并且看起来可以。
让我们通过调整 ulimit 来检查最大打开文件数:
- docker daemon最大打开文件数限制:
cat /proc/$(ps -A | grep dockerd | awk '{print $1}')/limits | grep "files"
如果 docker 守护进程正在运行,则输出为:
Max open files 65536 65536 files
- 现在运行一个调整了 ulimits 的 docker 容器(让它成为 python,但确保另一个 python 不会在你的机器上运行):
# run container in daemon mode
docker run -d -it --rm --ulimit nofile=99999:99999 python python;
# show max files for the python process
cat /proc/$(ps -A | grep python | awk '{print $1}')/limits | grep "files"
输出:
Max open files 99999 99999 files