%3A%20No%20space%20left%20on%20device%C2%BB%20%D0%B2%20Docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B5.%20%D0%9C%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B1%D1%8B%D1%82%D1%8C%2C%20%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0%20%D0%B2%20%D1%87%D0%B5%D0%BC-%D1%82%D0%BE%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%BC%3F.png)
У меня есть несколько контейнеров 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>