
Небольшая юмористическая заметка на тему того, что делать, если докер всё пожрал всё место на диске, от для человека, который каждый день работает с докером не шарит за докер.
Заметку написала моя коллега, орфография и пунктуация по возможности сохранены. В какой-то момент ей надоело вспоминать или гуглить как чистить мусор, который оставляет докер, его билды, образы и вольюмы, и она свела всё в одну заметку.
Как мне кажется, получилось довольно смешно. Всё написанное в статье выдумка, любые совпадения с реальным миром случайны, если вы вводите в консоль sudo или его аналог - вы делаете это на свой страх и риск. Слова, замененные на другие для соблюдения правил Хабра, выделил курсивом, но думаю всё поймут, что было в оригинале написано.
Без sudo 🏝️
docker system df - общая инфа по тому, сколько где памяти жрётся:
Можно (но лучше не стоит) снести всё лишнее одной командой
docker system prune- аккуратно, можно случайно снести чей-то основной, но остановленный контейнер;Много лишнего в build cache - тут можно смело фигачить
docker builder prune;Образы, контейнеры, вольюмы подчищаются через
docker image prune(безопасно) иdocker container prune(сносит все остановленные контейнеры), еще естьdocker volume prune.
C sudo ⚠️
sudo ncdu /var/lib/docker- чекнуть, что там такого пожрано. Всё ниже может иметь неопределённые последствия, но пока я с ними не встречалась;Если в
/var/lib/docker/containersмного Гб, то, скорее всего, дело в логах самого докера. Можно почистить всё черезsudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log";Огромная папка
/var/lib/docker/overlay2. Есть подозрение, что тут неверно считает размер, но факт, что туда набивается лишнего.Особое внимание стоит обратить на
diff- там иногда забивается/tmp/директория и прочее, что не лежит в файловой системе хоста. Можно прошерстить основные контейнеры и найти тот, который ссылается на эти папки, черезdocker container inspect --format '{{json .GraphDriver.Data }}' $айди_подозрительного_контейнера} | jq .и сказать а-та-та владельцу.
Если всё очень плохо, то остаётся только радикальное решение - рестарт докера и перезагрузка бокса.
