Назад | Перейти на главную страницу

Может ли ulimit для контейнеров в процессе демона докера быть выше, чем предел самого процесса демона?

Может ли 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 на максимальное количество открытых файлов:

  1. Максимальное количество открытых файловых ограничений демона docker:
cat /proc/$(ps -A | grep dockerd | awk '{print $1}')/limits | grep "files"

Если демон docker запущен, вывод будет следующим:

Max open files            65536                65536                files
  1. Теперь запустите docker-контейнер с настроенными ulimits (пусть это будет 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