Как удалить изображение из Azure Container Registry

Есть ли способ удалить только те или иные теги? Я только нашел способ удалить весь реестр, используя REST/cli-acr

Спасибо

Ответ 1

Мы ужесточили реестр для выпуска GA в конце этого месяца. Мы отложили все новые функции, сосредоточившись на производительности, надежности и дополнительных лазурных центрах обработки данных, предоставляя ACR во всех публичных центрах обработки данных компанией GA. Мы предоставим удаление изображений и тегов в будущей версии. Мы начали использовать https://github.com/Azure/acr/ для отслеживания функций и ошибок. Удалить здесь: https://github.com/Azure/acr/issues/33

Спасибо за отзывы, Стив

Ответ 2

Вы можете использовать Azure CLI 2.0 для удаления изображений из репозитория с указанным тегом:

az acr repository delete -n MyRegistry --repository MyRepository --tag MyTag

  • MyRegistry - это имя вашего реестра контейнеров Azure
  • MyRepository - это имя хранилища
  • MyTag обозначает тег, который вы хотите удалить.

Вы также можете удалить весь репозиторий, пропустив --tag MyTag. Более подробную информацию о команде az acr repository delete можно найти здесь: https://docs.microsoft.com/en-us/cli/azure/acr/repository#delete

Ответ 3

Вот сценарий powershell, который удаляет все теги реестра Azure Container, кроме тегов MyTag1 и MyTag2:

az acr repository show-tags -n MyRegistry --repository MyRepository | ConvertFrom-String | %{$_.P2 -replace "['",]",""} | where {$_ -notin "MyTag1","MyTag2"  } | % {az acr repository delete -n MyRegistry --repository MyRepository --tag $_ --yes}

Он использует Azure CLI 2.0.

Ответ 4

У меня была аналогичная проблема, когда я хотел удалить исторические изображения из репозитория, так как наша квота достигла 100%

Я смог сделать это, используя следующие команды в Azure CLI 2.0. Процесс выполняет следующее: получает список тегов, фильтрует его с помощью grep и очищает его с помощью sed, прежде чем передавать его команде delete.

Получить все теги для данного репозитория

az acr repository show-tags -n [registry] --repository [repository] 

Получите все теги, которые начинаются с конкретного ввода и канала, которые будут переданы в sed, которые удалят конечную запятую

grep \"[starts with] | sed 's/,*$//g'

Используя xargs, назначьте вывод переменной X и используйте это как тег.

- манифест: Удалите манифест, на который ссылается тег. Это также удаляет любые связанные данные слоя и все другие теги, ссылающиеся на манифест.

- yes -y: не запрашивать подтверждение.

xargs -I X az acr repository delete -n [registry] --repository [repository] --tag X --manifest --yes

например. registry = myRegistry, repository = myRepo, я хочу удалить все теги, которые начинаются с тега 'test' (это будет включать test123, тестирование и т.д.)

az acr repository show-tags -n myRegistry --repository myRepo | grep \"test | sed 's/,*$//g' | xargs -I X az acr repository delete -n myRegistry --repository myRepo --tag X --manifest --yes

Более подробную информацию можно найти здесь Microsoft Azure Docs

Ответ 5

В качестве обновления сегодня мы выпустили предварительный просмотр нескольких функций, включая репозиторий delete, отдельные логические учетные записи Active Directory и веб-узлы Azure, Стив

Ответ 6

Я перепробовал все команды, но ни одна из них не сработала. Я подумал, что их можно сложить, поэтому я пошел на свой портал Azure и самостоятельно удалил свое хранилище. Оно работает