Проблема с «mkdir(): No space left on device» в Docker-контейнере. Может быть, проблема в чем-то другом?

Проблема с «mkdir(): No space left on device» в Docker-контейнере. Может быть, проблема в чем-то другом?

У меня есть несколько контейнеров docker (NGINX / PHP, MySQL и т. д.), которые прекрасно работают уже много лет. Однако недавно я начал видеть эту ошибку при запуске скрипта PHP в Laravel в контейнере NGINX / PHP.

mkdir(): No space left on device

Насколько я могу судить, похоже, что он выбрасывается/генерируется, когда веб-приложение пытается отправить электронное письмо во время шага Login OTP/2FA, используя Illuminate\Support\Facades\Mail в Laravel. Я предполагаю, что происходит попытка записи в какую-то папку/файл кэша или другой каталог внутри контейнера, который каким-то образом должен быть заполнен или иным образом не иметь разрешения на запись в это место.

Похоже, что большинство файлов кэша nginx находятся в контейнере: /var/cache/nginx.

Хотя в последнее время в коде ничего не менялось.

Есть ли способ проверить доступное пространство в контейнере или иным образом задать размер, выделенный для Docker-контейнера?

решение1

Нет ограничений на объем диска, к которому контейнер может получить доступ по умолчанию. Есть опция, доступная, но ограниченная некоторыми драйверами хранения:параметры драйвера хранилища

Скорее всего, на хост-устройстве, где запущены контейнеры docker, больше не осталось места. Вы можете проверить это, запустив:

# df -h

Другой причиной может быть отсутствие доступных инодов (что может произойти даже без заполнения файловой системы). Вы можете проверить это, выполнив:

df -i
# or
tune2fs -l /dev/<your disk device>

Связанный контент