Перейти к основному содержимому
Версия: 9.1

Очистка образов Container Registry

В процессе эксплуатации и установки обновлений системы накапливаются старые образы в хранилище Container Registry. В данной статье приведен пример очистки образов, которые уже не востребованы системой.

⚠️ Инструкции ниже справедливы при условии использования Container Registry в промышленных установках, или в случае использования демонстрационного образа Monq. При использовании сторонних решений (например, Harbor, Nexus, Gitlab и др.), очистку образов необходимо производить согласно официальной документации данных решений.

Необходимые инструменты

  • discli - утилита командной строки для управления образами контейнеров в реестрах, совместимых со спецификацией OCI Distribution. Начиная с версии Monq 8.9.1, утилита предустановлена в демонстрационном образе, а инструкция по её установке включена в состав руководства по установке системы и подготовке компонентов инфраструктуры.

Использование

Утилита позволяет выполнить очистку реестра в два простых шага:

  1. Запустите очистку реестра

    Приведенная в примере команда оставит только один последний тег для каждого репозитория:

    discli cleanup <адрес реестра> -k 1
    • <адрес реестра> - например, для демонстрационного образа это: registry.in.monq.local:5000

    Справка по команде discli cleanup:

    Очистка реестра

    Использование:
    discli cleanup <адрес реестра> [флаги]

    Флаги:
    -d, --dry-run (Опционально) Выполнить все действия, кроме удаления.
    -h, --help Справка по команде cleanup
    -k, --keep-tags int (Опционально) Количество последних тегов, отсортированных по SemVer, которые не будут удалены. (по умолчанию: 3)
    -r, --repo-regex string (Опционально) Регулярное выражение для выбора репозиториев. (по умолчанию: ".*")
    -t, --tag-regex string (Опционально) Регулярное выражение для выбора тегов. (по умолчанию: ".*")

    Глобальные флаги:
    --allow-nondistributable-artifacts Разрешить выгрузку нераспространяемых (сторонних) слоёв
    --insecure Разрешить обращение к образам без TLS (по незащищённому соединению)
    --platform platform Указывает платформу в форме ос/архитектура[/вариант][:версия_ОС] или all для всех доступных платформ (например, linux/amd64). (по умолчанию: linux/amd64)
    -v, --verbose Включить подробные логи (отладочный вывод)

  2. Запустите "сборщик мусора" в реестре

    Выполняется на сервере с установленным Container Registry или непосредственно в консоли демонстрационного образа.

    registry garbage-collect /etc/docker/registry/config.yaml

    Для корректной работы "сборщика мусора" в конфигурационном файле Container Registry должна быть включена возможность удаления. По умолчанию включено начиная с версии Monq 8.9.1.

    ...
    storage:
    delete:
    enabled: true
    ...

Утилита имеет широкий набор опций и подробную справку, посмотреть которую можно выполнив команду - discli help.