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

от автора

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

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

Как мне кажется, получилось довольно смешно. Всё написанное в статье выдумка, любые совпадения с реальным миром случайны, если вы вводите в консоль 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 . и сказать а-та-та владельцу.

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


ссылка на оригинал статьи https://habr.com/ru/articles/790592/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *