Может ли ulimit для контейнеров в процессе демона докера быть выше, чем предел самого процесса демона?
В документации Docker об этом ничего не говорится:
Из : https://docs.docker.com/engine/reference/commandline/dockerd/#default-ulimit-settings
--default-ulimit позволяет вам установить параметры ulimit по умолчанию, которые будут использоваться для всех контейнеров. Для запуска докера требуются те же параметры, что и --ulimit. Если эти значения по умолчанию не установлены, настройки ulimit будут унаследованы, если не установлены при запуске докера, от демона Docker. Любые параметры --ulimit, переданные в docker run, перезапишут эти значения по умолчанию.
Я проверил с Amazon Linux, похоже, может.
Давайте проверим это, настроив ulimit на максимальное количество открытых файлов:
cat /proc/$(ps -A | grep dockerd | awk '{print $1}')/limits | grep "files"
Если демон docker запущен, вывод будет следующим:
Max open files 65536 65536 files
# 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