Docker занял весь диск: no space left on device — что можно удалить
Docker хранит старые образы, остановленные контейнеры, кэш сборки и логи, и сам их не удаляет. Посмотрите, что занимает место, удалите лишнее и ограничьте логи, чтобы диск не заполнился снова.
Содержание 7
Как выглядит ошибка
Сборка образа, скачивание или сам контейнер останавливаются с сообщением, в конце которого стоит:
no space left on deviceЭто не ошибка Docker, а ответ системы: на диске сервера нет места. Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне. Сколько места осталось:
df -h /В колонке Use% — сколько занято. 100% — диск заполнен.
Шаг 1. Посмотрите, что занял Docker
docker system dfКоманда показывает четыре строки:
| Строка | Что это |
|---|---|
| Images | Образы |
| Containers | Контейнеры: то, что программы записали внутрь них |
| Local Volumes | Тома — данные: базы, загруженные файлы |
| Build Cache | Кэш сборки образов |
Колонка SIZE — сколько занято, RECLAIMABLE — сколько можно освободить. Логи контейнеров здесь не видны — о них шаг 3.
Шаг 2. Удалите лишнее
--volumes.Одна команда удаляет остановленные контейнеры, неиспользуемые сети, образы без имени и кэш сборки:
docker system pruneDocker перечислит, что удалит, и спросит:
WARNING! This will remove:
…
Are you sure you want to continue? [y/N]Проверьте, нет ли среди остановленных контейнеров нужных: список покажет docker ps -a, у остановленных в колонке STATUS — Exited. Если всё в порядке, наберите y и нажмите Enter. В конце Docker напишет Total reclaimed space: — сколько места освободилось.
Если места всё ещё мало, удалите образы, которыми не пользуется ни один контейнер:
docker image prune -aУдалятся и старые версии ваших образов. Если понадобятся, Docker скачает или вы соберёте их заново. Кэш сборки целиком удаляет docker builder prune -a — следующая сборка пойдёт дольше.
Шаг 3. Проверьте логи контейнеров
Всё, что программа в контейнере пишет на экран, Docker сохраняет в файл. По умолчанию этот файл ничем не ограничен и может вырасти на весь диск. Где лежит лог контейнера и сколько он весит — В примерах контейнер называется web — подставьте имя своего контейнера. Имена видны в последней колонке NAMES команды docker ps -a.
sudo du -h "$(docker inspect -f '{{.LogPath}}' web)"Если лог большой, ограничьте логи. Откройте файл настроек Docker (как работать в редакторе — в разделе про nano):
sudo nano /etc/docker/daemon.jsonЕсли файл пустой, вставьте:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}Это до трёх файлов по 10 МБ на контейнер. Числа пишутся в кавычках. Если в файле уже есть настройки, добавьте эти строки к ним через запятую, а не вместо них. Другой вариант, который советует сам Docker, — драйвер local, он описан в статье VPS для разработчика: ограничьте логи.
Сохраните файл (Ctrl+O, Enter, Ctrl+X) и перезапустите Docker. Контейнеры на это время остановятся:
sudo systemctl restart dockerОграничение действует только на новые контейнеры. Пересоздайте свои — для проекта на docker compose в его папке:
docker compose up -d --force-recreateЕсли Docker после перезапуска не стартует, в daemon.json ошибка — разбор на странице Cannot connect to the Docker daemon.
Как проверить
df -h /
docker system dfВ Use% процент должен уменьшиться, а в RECLAIMABLE — остаться немного.
Тексты ошибок сверены с исходным кодом Docker 29.1.3 — эта версия ставится из пакетов Ubuntu 24.04. В Docker 28 и более старых версиях часть сообщений звучит иначе.
Источники
- Исходный код Docker CLI 29.1.3: prune.go — вопрос перед очисткой и строка Total reclaimed space.
- Исходный код Docker CLI 29.1.3: prune.go — что удаляет docker image prune и с флагом -a.
- Исходный код Docker CLI 29.1.3: prune.go — очистка кэша сборки.
- Исходный код Docker CLI 29.1.3: disk_usage.go — строки и колонки docker system df.
- Документация Docker: драйвер json-file — max-size и max-file, по умолчанию без ограничений.
- Документация Docker: драйверы логов — настройка логов в daemon.json.
- Документация Docker: docker compose up — запуск и пересоздание контейнеров.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026