library initialization failed - unable to allocate file descriptor table - out of memory
Иногда в Docker'е может появиться ошибка "library initialization failed - unable to allocate file descriptor table - out of memory"
Эта проблема возникает из-за того, что программе необходимо слишком много файловых дескрипторов. Она увеличивает мягкое ограничение на количество файлов до максимально доступного значения, а затем пытается выделить память для каждого из этих файловых дескрипторов. В некоторых системах с высокими ограничениями это приводит к нехватке памяти.
Конкретно для Docker'а это можно вылечить следующим образом (как увеличить лимиты файловых дескрипторов для docker'а) - нужно обновить Unit Docker'а для systemd. Для этого надо отредактировать/создать временный файл перезаписи:
sudo mkdir /etc/systemd/system/docker.service.d
sudo vi /etc/systemd/system/docker.service.d/override.conf
И добавить туда:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --default-ulimit nofile=65536:65536 -H fd://
Сохраняем:
sudo systemctl daemon-reload
И перезапускаем сервис Docker'а:
sudo systemctl restart docker
Источник1: https://zhbert.ru/articles/docker/how-to-fix-the-error-about-library-initialization-failed.html
Источник2: https://stackoverflow.com/questions/68776387/docker-library-initialization-failed-unable-to-allocate-file-descriptor-tabl