Очистка в Docker

Вариант 1 ручным удалением

1. Удаление контейнеров(просмотр списка и удаление по CONTAINER ID)

	docker container ls 
	docker container [CONTAINER ID]

2. Удаление образов(просмотр списка и удаление по IMAGE ID)

	docker image ls
	docker rmi [IMAGE ID]

3. Удаление томов(просмотр списка и удаление по VOLUME NAME)

	docker volume ls
	docker volume rm [VOLUME NAME]

4. Удаление сетей(просмотр списка и удаление по NETWORK ID)

	docker network ls
	docker network rm [NETWORK ID]

Вариант 2 через Docker Prune

Удаление неиспользуемых объектов Docker

Docker использует консервативный подход к очистке неиспользуемых объектов (часто называемых «сборкой мусора»), таких как образы, контейнеры, тома и сети. Эти объекты обычно не удаляются, если вы явно не попросите Docker сделать это. Это может привести к тому, что Docker будет использовать дополнительное дисковое пространство. Для каждого типа объекта Docker предоставляет команду удаления. Кроме того, вы можете использовать систему очистки Docker для одновременной очистки нескольких типов объектов. В этом разделе показано, как использовать эти команды очистки.

1. Очистка образов

Команда docker image prune позволяет очистить неиспользуемые образы. По умолчанию docker image prune очищает только висящие образы. Висящий образ — это образ, который не помечен тэгами и на который не ссылается ни один контейнер. Чтобы удалить висящие образы:

	docker image prune

Чтобы удалить все образы, которые не используются существующими контейнерами, используйте флаг -a:

	docker image prune -a

По умолчанию вам будет выведена подсказка для продолжения выполнения команды. Чтобы обойти подсказку, используйте флаг -f или --force.

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

	docker image prune -a --filter "until=24h"

Доступны и другие выражения фильтрации. Дополнительные примеры смотрите в справочнике docker image prune.

2. Очистка контейнеров

Когда вы останавливаете контейнер, он не удаляется автоматически, если вы не запустили его с флагом --rm. Чтобы просмотреть все контейнеры на хосте Docker, включая остановленные контейнеры, используйте команду docker ps -a. Вы можете быть удивлены тем, как много существует контейнеров, особенно в системе разработки! Доступные для записи слои остановленного контейнера по-прежнему занимают дисковое пространство. Чтобы их очистить, вы можете использовать команду docker container prune.

	docker container prune

По умолчанию вам будет выведена подсказка для продолжения выполнения команды. Чтобы обойти подсказку, используйте флаг -f или --force.

По умолчанию все остановленные контейнеры удаляются. Вы можете ограничить область действия, используя флаг --filter. Например, следующая команда удаляет только остановленные контейнеры старше 24 часов:

	docker container prune --filter "until=24h"

Доступны и другие выражения фильтрации. Дополнительные примеры смотрите в справочнике docker container prune.

3. Удаление томов

Тома могут использоваться одним или несколькими контейнерами и занимать место на хосте Docker. Тома никогда не удаляются автоматически, поскольку это может привести к уничтожению данных.

	docker volume prune

По умолчанию вам будет выведена подсказка для продолжения выполнения команды. Чтобы обойти подсказку, используйте флаг -f или --force.

По умолчанию все неиспользуемые тома удаляются. Вы можете ограничить область действия, используя флаг --filter. Например, следующая команда удаляет только тома, которые не помечены меткой keep:

	docker volume prune --filter "label!=keep"

Доступны и другие выражения фильтрации. Дополнительные примеры смотрите в справочнике docker volume prune.

4. Удаление сетей

Сети Docker не занимают много места на диске, но они создают правила iptables, мостовые сетевые устройства и записи таблицы маршрутизации. Чтобы очистить эти вещи, вы можете использовать docker network prune для очистки сетей, которые не используются никакими контейнерами.

	docker network prune

По умолчанию вам будет выведена подсказка для продолжения выполнения команды. Чтобы обойти подсказку, используйте флаг -f или --force.

По умолчанию все остановленные контейнеры удаляются. Вы можете ограничить область действия, используя флаг --filter. Например, следующая команда удаляет только остановленные сети старше 24 часов:

	docker network prune --filter "until=24h"

Доступны и другие выражения фильтрации. Дополнительные примеры смотрите в справочнике docker network prune.

Удаление всего

Команда docker system prune — это ярлык, который удаляет образы, контейнеры и сети. По умолчанию тома не удаляются, и вы должны указать флаг --volumes для удаления томов в системе Docker.

	docker system prune --volumes

По умолчанию вам будет выведена подсказка для продолжения выполнения команды. Чтобы обойти подсказку, используйте флаг -f или --force.

По умолчанию все неиспользуемые контейнеры, сети и образы удаляются. Вы можете ограничить область действия, используя флаг --filter. Например, следующая команда удаляет только записи старше 24 часов:

	docker network prune --filter "until=24h"

Доступны и другие выражения фильтрации. Дополнительные примеры смотрите в справочнике docker system prune.

Полезные ссылки:

Тэги:

Тэг в списке: