Перечисление сетей для определения неиспользуемых
На этом этапе мы научимся перечислять сети Docker и определять те, которые в настоящее время не используются никакими контейнерами. Это полезно для очистки вашей среды Docker и освобождения ресурсов.
Мы уже использовали команду docker network ls
на предыдущем этапе, чтобы перечислить все сети. Запустим ее еще раз, чтобы увидеть текущее состояние.
docker network ls
В выводе показаны идентификатор сети, имя, драйвер и область действия для каждой сети. Обратите внимание, что сети my-network-1
и my-network-2
, которые мы создали, перечислены.
Для определения неиспользуемых сетей мы можем использовать команду docker network prune
с флагом --dry-run
. Этот флаг позволяет нам увидеть, какие сети будут удалены, не удаляя их на самом деле.
docker network prune --dry-run
Вывод этой команды будет перечислять сети, которые не присоединены к каким-либо запущенным контейнерам и будут удалены. Поскольку мы не присоединили никакие контейнеры к my-network-1
или my-network-2
, они должны появиться в выводе предварительного просмотра.
Запустим простой контейнер, присоединенный к my-network-1
, чтобы увидеть, как это повлияет на вывод команды docker network prune --dry-run
. Мы будем использовать образ hello-world
, который очень маленький. Сначала скачаем образ:
docker pull hello-world
Теперь запустим контейнер с использованием этого образа и присоединим его к my-network-1
. Флаг -d
запускает контейнер в отсоединенном режиме (в фоновом режиме).
docker run -d --network my-network-1 hello-world
Вы увидите идентификатор контейнера в выводе.
Теперь запустим команду docker network prune --dry-run
еще раз.
docker network prune --dry-run
На этот раз my-network-1
не должен появиться в списке сетей для удаления, так как он используется запущенным контейнером hello-world
. my-network-2
, который не используется, все еще должен быть перечислен.
Для остановки и удаления контейнера hello-world
сначала найдем его идентификатор с помощью команды docker ps
.
docker ps
Затем остановим контейнер с помощью команды docker stop <container_id>
и удалим его с помощью команды docker rm <container_id>
. Замените <container_id>
на фактический идентификатор из вывода команды docker ps
.
docker stop <container_id>
docker rm <container_id>
Теперь, если вы снова запустите команду docker network prune --dry-run
, обе сети my-network-1
и my-network-2
должны быть перечислены как сети для удаления, так как они больше не используются.