Заметки на полях
У меня архитектура микросервисная и для разных сервисов я люблю брать небольшие облачные инстансы (пользуюсь SimpleCloud). Почему именно они? Пользовался DO, пользовался VSсale, и другими… Но опытным путем пришел к тому, что в соотношении цена-качество-аптайм и удобство работы выигрывает SimpleCloud. У меня почти нет нареканий. За более чем 3 года работы я суммарно писал в службу поддержки раза 4 и все проблемы решались достаточно быстро. Но речь не об этом…
Ну так вот, микросервисы доставляются через контейнеры (ессно Docker). И тут один сервис вдруг говорит — место кончилось. Внезапно. Наверное у многих были случаи в жизни, когда кончается место на сервере. Это случается не часто, но случается. И что делать? Решил выложить шпаргалку, чтобы самому не забыть.
Смотрим кто занял место. Для этого есть несколько способов.
Есть утилита ncdu, если вы ее поставили. Если нет — то с нехваткой места вы ее уже не сможете поставить. Она в человеческом виде показывает кто самый “жирный”.
Если просто набрать
df -h
Покажет свободное место. Не всегда это может помочь, особенно если вывод выглядит так:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 80G 80G 80G 100% /
Тогда вы можете пройти от корня командой:
du -hx --max-depth=1 /
до тех пор пока не выявите самую большую директорию. В итоге выясняем что место сожрано /var/lib/docker. Так как это девелоп версия сервиса, то по мере разработки, экспериментов и прочих манипуляций на инстансе может собраться склад неиспользуемых данных от контейнеров (особенно если активно собираете контейнеры).
Чистим следы Docker’a
Чтобы удалить все неиспользуемое, достаточно выполнить команду:
$ docker volume prune -f
$ docker system prune -af
В итоге оказалось что 48% диска было занято именно неиспользуемыми данными от старых контейнеров и точек монтирования. Буквально парой команд было вычищено огромное количество мусора.