Как стать автором
Обновить

Всё /var/lib/docker пожрал … docker

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров16K

Небольшая юмористическая заметка на тему того, что делать, если докер всё пожрал всё место на диске, от для человека, который каждый день работает с докером не шарит за докер.

Заметку написала моя коллега, орфография и пунктуация по возможности сохранены. В какой-то момент ей надоело вспоминать или гуглить как чистить мусор, который оставляет докер, его билды, образы и вольюмы, и она свела всё в одну заметку.

Как мне кажется, получилось довольно смешно. Всё написанное в статье выдумка, любые совпадения с реальным миром случайны, если вы вводите в консоль sudo или его аналог - вы делаете это на свой страх и риск. Слова, замененные на другие для соблюдения правил Хабра, выделил курсивом, но думаю всё поймут, что было в оригинале написано.

Без sudo 🏝️

docker system df - общая инфа по тому, сколько где памяти жрётся:

  • Можно (но лучше не стоит) снести всё лишнее одной командой docker system prune - аккуратно, можно случайно снести чей-то основной, но остановленный контейнер;

  • Много лишнего в build cache - тут можно смело фигачитьdocker builder prune;

  • Образы, контейнеры, вольюмы подчищаются через docker image prune (безопасно) и docker container prune (сносит все остановленные контейнеры), еще есть docker volume prune.

C sudo ⚠️

  1. sudo ncdu /var/lib/docker - чекнуть, что там такого пожрано. Всё ниже может иметь неопределённые последствия, но пока я с ними не встречалась;

  2. Если в /var/lib/docker/containers много Гб, то, скорее всего, дело в логах самого докера. Можно почистить всё через sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log";

  3. Огромная папка /var/lib/docker/overlay2. Есть подозрение, что тут неверно считает размер, но факт, что туда набивается лишнего.

  4. Особое внимание стоит обратить на diff - там иногда забивается /tmp/ директория и прочее, что не лежит в файловой системе хоста. Можно прошерстить основные контейнеры и найти тот, который ссылается на эти папки, через docker container inspect --format '{{json .GraphDriver.Data }}' $айди_подозрительного_контейнера} | jq . и сказать а-та-та владельцу.

Если всё очень плохо, то остаётся только радикальное решение - рестарт докера и перезагрузка бокса.

Теги:
Хабы:
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Публикации

Истории

Работа

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область