如何用PowerShell列出Azure Container Registry指定标签/标签集的所有镜像
Azure Container Registry 按指定标签/标签集筛选镜像(PowerShell实现)
一、列出单个指定标签的所有镜像
前置准备
确保已安装Az.ContainerRegistry模块并登录Azure:
# 安装模块(首次使用) Install-Module -Name Az.ContainerRegistry -Force -AllowClobber # 登录Azure账号 Connect-AzAccount
实现脚本
替换你的ACR名称和目标标签为实际值:
# 定义变量 $acrName = "你的ACR名称" $targetTag = "目标标签" # 例如 "latest"、"v1.0.0" # 获取ACR下所有仓库 $allRepos = Get-AzContainerRegistryRepository -RegistryName $acrName # 遍历仓库,筛选匹配标签的镜像 foreach ($repo in $allRepos) { # 获取当前仓库的所有标签 $repoTags = Get-AzContainerRegistryTag -RegistryName $acrName -RepositoryName $repo.Name # 筛选出匹配目标标签的条目 $matchingImages = $repoTags | Where-Object { $_.Name -eq $targetTag } if ($matchingImages) { # 输出结构化结果 $matchingImages | ForEach-Object { [PSCustomObject]@{ 仓库名称 = $repo.Name 标签 = $_.Name 镜像摘要 = $_.Digest 创建时间 = $_.CreatedTime } } } }
说明
脚本会遍历ACR内所有仓库,逐个检查仓库内的标签,将匹配指定标签的镜像信息以结构化对象输出,包含仓库名、标签、镜像摘要和创建时间,方便后续处理。
二、列出指定标签集的所有镜像
如果需要匹配多个标签(比如同时筛选latest、v1.0.0、stable),只需修改标签变量为数组,并调整筛选逻辑:
实现脚本
# 定义变量 $acrName = "你的ACR名称" $targetTags = @("latest", "v1.0.0", "stable") # 目标标签集合 # 获取ACR下所有仓库 $allRepos = Get-AzContainerRegistryRepository -RegistryName $acrName # 遍历仓库,筛选匹配标签集的镜像 foreach ($repo in $allRepos) { $repoTags = Get-AzContainerRegistryTag -RegistryName $acrName -RepositoryName $repo.Name # 筛选出标签在目标集合内的条目 $matchingImages = $repoTags | Where-Object { $targetTags -contains $_.Name } if ($matchingImages) { $matchingImages | ForEach-Object { [PSCustomObject]@{ 仓库名称 = $repo.Name 标签 = $_.Name 镜像摘要 = $_.Digest 创建时间 = $_.CreatedTime } } } }
说明
这里使用-contains运算符判断当前标签是否在目标标签数组中,只要匹配数组内任意一个标签,就会输出该镜像信息。
内容的提问来源于stack exchange,提问作者matthiasdenu
相关产品推荐
相关产品推荐

