#Как выглядит неисправность
Docker может перестать запускать контейнеры из-за переполненного раздела диска, квот или нехватки inode. Сообщения «no space left on device» и «disk quota exceeded» требуют выяснить, где закончилось место, а не удалять всё подряд.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Полон раздел Docker data-rootНа диске с /var/lib/docker (или иным data-root) нет свободных блоков | df -h показывает 100% | Найти и согласованно удалить ненужные данные |
| Не осталось inode либо действует квотаСвободные гигабайты есть, а файлы не создаются | df -i показывает 100% или сообщение о quota | Проверить множество мелких файлов и ограничения |
#Пошаговое устранение
- 1. Сохраните точную ошибку DockerВыполните docker ps -a и docker system df. Если демон доступен, вторая команда покажет распределение места по образам, контейнерам и томам. При connection refused сначала проверьте службу.Linux · Терминал (Bash)КомандаТолько просмотр; без удаления.
docker system dfdocker ps -a
- 2. Проверьте свободные блоки и inode на хостеНа Linux откройте терминал хоста и выполните df -h и df -i. Сравните раздел с Docker data-root; на Docker Desktop местом может управлять виртуальный диск, а не раздел /var/lib/docker на хосте.
- Linux-хост; только чтение, обычные права пользователяLinux · Терминал (Bash)КомандаLinux-хост; только чтение, обычные права пользователя.
df -hdf -i
- 3. Найдите действительный путь Docker data-rootВыполните docker info --format ... и посмотрите Docker Root Dir. На Linux вы можете затем проверить нужный раздел через df -h /путь. Не удаляйте содержимое этой директории вручную.Linux · Терминал (Bash)КомандаЧтение пути хранилища; Docker Desktop может использовать внутреннюю виртуальную машину.
docker info --format '{{.DockerRootDir}}'
- 4. Посмотрите большие образы и журналыВыполните docker system df -v и docker ps --size. Найдите объекты, для которых у вас есть подтверждение, что они не нужны. Для растущих журналов разберите причину ошибок и настройте ротацию вместо ручной очистки файлов контейнеров.Linux · Терминал (Bash)КомандаДополнительная диагностика, может работать долго в больших проектах.
docker system df -vdocker ps --size
- 5. Проверьте сохранность данных перед уборкойСнимите резервную копию нужных томов по официальной процедуре приложения и убедитесь, что она восстанавливается на тесте. Уточните у владельцев проектов, какие образы и остановленные контейнеры можно удалить.
- 6. Удаляйте только подтверждённый ненужный объектЕсли владелец подтвердил ненужный конкретный контейнер или образ, используйте точечное удаление по его имени/ID в согласованном окне. Не подставляйте шаблон «всё» и не удаляйте тома автоматически; права на удаление должны быть согласованы с администратором.
- 7. Повторите запуск и контролируйте пространствоПосле согласованной очистки повторите df -h, df -i, docker system df и запуск тестового контейнера. Если место быстро кончается вновь, проверьте журналы, циклы сборки и недостаточный размер виртуального диска.
#Как проверить результат
Результат: свободны блоки и inode на нужном разделе, тестовый контейнер запускается, все обязательные тома и их резервные копии сохранены.
#Если проблема осталась
Не повторяйте опасные действия на рабочем окружении. Сравните первоначальный симптом с новым состоянием, сохраните обезличенные сообщения и версии компонентов, проверьте резервную копию; перед изменением общей истории Git или данных/сети Docker обратитесь к ответственному администратору проекта.