Отключение репозиториев на основе фильтра
На этом этапе мы рассмотрим, как можно использовать фильтрацию для управления теми репозиториями, с которыми вы взаимодействуете. Хотя Docker не имеет встроенной команды для "отключения" репозиториев на основе произвольных фильтров, как вы можете фильтровать файлы, вы можете достичь аналогичного результата, используя фильтрацию при перечислении или поиске образов и точными командами docker pull
.
Фильтрация - это мощная функция в Docker, которая позволяет сузить результаты команд, таких как docker images
, docker ps
и docker search
. Вы можете фильтровать по различным критериям, таким как имя образа, тег, время создания и т.д. Используя фильтры, вы можете эффективно игнорировать или исключить репозитории, соответствующие определенным шаблонам, тем самым "отключая" их от текущего вида или операций.
Начнем с перечисления всех образов, которые у нас в настоящее время есть, включая образы ubuntu
и hello-world
.
docker images
Теперь предположим, что мы хотим увидеть только образы, принадлежащие пространству имен library
(которое включает официальные образы, такие как ubuntu
и hello-world
). Мы можем использовать флаг --filter
с критерием reference
. Фильтр reference
соответствует имени образа, включая необязательный реестр и тег.
docker images --filter "reference=*/library/*"
Эта команда выведет список образов, в которых ссылка содержит /library/
. Вы должны увидеть перечисленные образы ubuntu
и hello-world
. Это демонстрирует, как можно фильтровать, чтобы включить определенные репозитории.
Для имитации "отключения" репозиториев на основе фильтра вы, по сути, должны сделать противоположное: отфильтровать, чтобы исключить репозитории, которые вы не хотите видеть или с которыми не хотите взаимодействовать. Например, если вы хотите вывести список всех образов, кроме тех, которые находятся в пространстве имен library
, вам понадобится более сложный подход, возможно, с использованием скриптинга для перечисления всех образов и последующей фильтрации их на основе шаблона.
Более практическое применение фильтрации в контексте "отключения" - это поиск образов. Вы можете фильтровать результаты поиска, чтобы найти образы, соответствующие определенным критериям, и игнорировать остальные.
Давайте поищем образы, содержащие слово "ubuntu" на Docker Hub.
docker search ubuntu
Это покажет список репозиториев, связанных с Ubuntu. Теперь предположим, что мы хотим видеть только официальные образы Ubuntu. Мы можем использовать флаг --filter
с критерием is-official=true
.
docker search ubuntu --filter "is-official=true"
Эта команда фильтрует результаты поиска, чтобы показать только официальные образы. Используя этот фильтр, вы фактически "отключаете" или игнорируете все неофициальные репозитории Ubuntu в результатах поиска.
Основная мысль заключается в том, что хотя нет прямой команды "отключить по фильтру" для загрузки образов, вы можете использовать фильтрацию в командах, таких как docker images
и docker search
, чтобы управлять списком доступных репозиториев и избегать взаимодействия с теми, которые вы хотите "отключить".
Для проверки этого этапа мы проверим, успешно ли вы использовали команду docker search
с фильтром is-official=true
.