Установите политику хранения для сохранения манифестов без тегов.

Реестр контейнеров Azure позволяет задать политику хранения для хранимых манифестов образа, которые не имеют связанных тегов. При включении политики хранения реестр автоматически удаляет незаключенные манифесты после заданного числа дней. Эта функция предотвращает заполнение реестра ненужными артефактами и помогает сэкономить на затратах на хранение.

Чтобы задать политику хранения для незаключенных манифестов, используйте портал Azure или Azure CLI. Для Azure CLI выполните команды в Azure Cloud Shell или локальной установке с последней версией Azure CLI. Сведения об установке или обновлении см. в статье " Установка Azure CLI".

Политика хранения для немаркированных манифестов в настоящее время является функцией предварительного просмотра реестров контейнеров с тарифным планом Premium. Сведения о тарифных планах реестра (SKU) см. в разделе "Функции и ограничения SKU реестра контейнеров Azure".

Предупреждение

Настройка политики хранения с осторожностью; Удаленные данные изображения невосстановимы. Если у вас есть системы, которые извлекают изображения по дайджесту манифеста (в отличие от имени образа), не устанавливайте политику хранения для манифестов без тегов. Удаление образов без тегов предотвращает извлечение этих образов из реестра систем. Вместо извлечения по манифесту рассмотрите возможность использования уникальной схемы тегов, что является рекомендованной практикой.

Как работает политика хранения

Реестр контейнеров Azure ведет подсчет ссылок на манифесты в реестре. При отмене тега манифеста реестр проверяет наличие политики хранения. Если политика хранения включена, а delete-enabled атрибут манифеста задан true, реестр планирует операцию удаления манифеста для определенной даты и времени в соответствии с количеством дней, заданных в политике хранения.

Например, предположим, что вы сняли теги с двух манифестов с разницей в один час в реестре с политикой хранения 30 дней. Реестр назначает операции на удаление для каждого манифеста. Затем, через 30 дней, примерно через час, оба манифеста удаляются, если политика хранения не отключена до запланированной даты удаления.

Вы можете исключить непомеченные манифесты из удаления политикой хранения, задав атрибуту delete-enabled значение false. Дополнительные сведения см. в разделе "Блокировка образа контейнера" в реестре контейнеров Azure.

Это важно

Политика хранения применяется только к немеченым манифестам с временными метками, датируемыми после её включения. Нетегированные манифесты в реестре с более ранними метками времени не подпадают под политику. Другие варианты удаления данных образа см. в примерах в статье "Удаление образов контейнеров" в реестре контейнеров Azure.

Неподключенные манифесты, использующие тип application/vnd.oci.image.index.v1+json носителя, не поддерживаются политикой хранения. Поддерживаются только v2 манифесты.

Настройка политики хранения

По умолчанию реестры контейнеров не имеют политики хранения для немеченых манифестов. Чтобы задать или обновить политику хранения, используйте Azure CLI или портал Azure.

Срок хранения по умолчанию для политики хранения составляет семь дней, но можно указать любое количество дней от 0 до 365. После периода хранения реестр автоматически удаляет манифесты без меток. При установке значения 0 непомеченные манифесты удаляются сразу же после того, как станут непомеченными.

Установка или обновление политики хранения

Чтобы задать или обновить политику хранения, выполните команду az acr config storage update .

В следующем примере устанавливается политика хранения в течение 30 дней для немеченных манифестов в реестре myregistry:

az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests

Проверка политики хранения

Если включить политику удержания с сроком хранения 0 дней, можно быстро убедиться, что непомеченные манифесты удаляются.

  1. Отправьте тестовый образ hello-world:latest в реестр или замените его другим тестовым образом по вашему выбору.

  2. Используйте команду az acr repository untag, чтобы снять тег с изображения hello-world:latest. Эта команда не удаляет не описанный тегами манифест из реестра.

    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. Через несколько секунд, в соответствии с вашей политикой управления, удаляется манифест без тега. Используйте команду az acr manifest-metadata для перечисления всех манифестов в репозитории и убедитесь, что тестовый образ больше не указан. Если тестовый образ был единственным в репозитории, сам репозиторий также удаляется.

Отображение политики хранения

Чтобы отобразить набор политик хранения в реестре, выполните команду az acr config storage show :

az acr config retention show --registry myregistry

Отключение политики хранения

Чтобы отключить политику хранения в реестре, выполните команду az acr config storage update и задайте:--status disabled

az acr config retention update \
  --registry myregistry --status disabled \
  --type UntaggedManifests