В современном технологическом мире контейнерные технологии используются везде. Самой популярной платформой для управления контейнерами является Docker. С ее помощью использовать контейнеры, разрабатывать и запускать приложения становится проще.
К сожалению, она может занимать довольно много места на диске, и в конечном счете диск может просто переполниться.
Совсем неважно, где вы используете Docker – на своем устройстве или на сервере, это руководство научит вас анализировать дисковое пространство, которые вы используете, и очищать Docker от ненужных ресурсов.
Все, что вам понадобиться, - это запущенный демон Docker и терминал.
Как проанализировать, сколько места занимает Docker
Вы можете просмотреть, сколько места занимает Docker, запустив следующую команду:
$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 61 16 21.1GB 15.25GB (72%)
Containers 69 0 12.26MB 12.26MB (100%)
Local Volumes 3 2 539.1MB 50.04MB (9%)
Build Cache 76 0 1.242GB 1.242GB
А добавив флаг -v, вы можете получить более подробную информацию:
$ docker system df -v
REPOSITORY TAG IMAGE ID CREATED SIZE SHARED
teamatldocker/jira e50b8390945c 4 weeks ago 842.3MB 0B
vw ed9e125a8925 2 months ago 1.659GB 134.8MB
Containers space usage:
CONTAINER ID IMAGE COMMAND SIZE
94e03a4a17d0 teamatldocker/jira "/sbin/tini -- /usr/…" 1.4MB
Local Volumes space usage:
VOLUME NAME LINKS SIZE
play-with-jira_postgresqldata 1 84.19MB
play-with-jira_jiradata 1 404.8MB
Build cache usage: 1.242GB
CACHE ID CACHE TYPE SIZE CREATED LAST USED
oxil5sdicb91 regular 135MB 2 months ago 2 months ago
kxz13fmdbodg regular 13B 2 months ago 2 months ago
nysus21ej7pf regular 0B 2 months ago 2 months ago
Как вы можете видеть, вы получили информацию о том:
- Сколько места занимают образы
- Сколько места занимают контейнеры
- Сколько места занимают локальные тома
- Сколько места занимает кэш сборки
Как очистить Docker
Вы можете очистить Docker полностью или только какие-то определенные его ресурсы, например, образы, тома контейнеров или кэш сборки.
Для того, чтобы очистить максимально большую часть данных (кроме тех компонентов, которые сейчас используются), вам нужно выполнить следующую команду:
$ docker system prune -a
Флаг -a обозначает неиспользуемые или висячие контейнеры. Если вы не укажите флаг -a, то команда удалит только висячие образы, то есть нетегированные образы, которые никак не связаны с другими образами.
Если вы хотите удалить большую часть ресурсов Docker, но при этом оставить тегированные образы, то вам нужна вот эта команда:
$ docker system prune
Эти команды помогут вам быстро освободить место на диске. Но помимо этого вы можете удалять отдельные компоненты.
Вот несколько полезных команд:
Удаление неиспользуемых и висячих образов
$ docker image prune
Удаление только висячих образов
$ docker image prune -a
Удаление остановленных контейнеров
$ docker container prune
Удаление неиспользуемых томов
$ docker volume prune
Как управлять пространством, которое использует Docker, на постоянной основе
Какие-то команды вы можете запускать на ежедневной основе или при запуске платформы. А для того, чтобы не забывать об этом, вы можете добавить флаг -f к команде, которую хотите запускать автоматически.
Только помните, что, так как вы регулярно удаляете ресурсы Docker, вам придется чаще загружать образы.
Если у вас нет проблем с нехваткой дискового пространства, можете быть спокойны. Просто делайте «уборку» всякий раз, как заметите, что Docker начинает использовать слишком много памяти.
Заключение
На сегодняшний день существует огромное количество способов освобождения дискового пространства Docker с помощью docker-команд. Вы даже можете выполнять эти команды в автоматическом режиме, если хотите периодически очищать ресурсы Docker.