设置未标记清单的保留策略
Azure 容器注册表为你提供了为没有任何关联标记(未标记清单)的存储映像清单设置保留策略的选项 。 启用保留策略后,注册表中的未标记清单会在设置的数天后自动删除。 此功能可防止注册表填满不需要的项目,并有助于节省存储成本。
可以使用本地安装的 Azure CLI 来运行本文中的命令示例。 若要在本地使用 Azure CLI,需要安装 2.0.74 或更高版本。 运行 az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
未标记清单的保留策略目前是“高级”容器注册表的预览功能。 有关注册表服务层级的信息,请参阅 Azure 容器注册表服务层。
警告
谨慎设置保留策略 - 删除的映像数据是无法恢复的。 如果系统按清单摘要(而不是映像名称)拉取映像,则不应为未标记的清单设置保留策略。 删除无标的记映像后,这些系统即无法从注册表拉取映像。 不按清单拉取,而是考虑采用建议的最佳做法,即唯一标记方案。
关于保留策略
Azure 容器注册表对注册表中的清单进行引用计数。 当未标记清单时,它将检查保留策略。 如果启用了保留策略,则会根据策略中设置的天数,将清单删除操作排入队列,并带有特定日期。
单独的队列管理作业会不断处理消息,根据需要进行缩放。 例如,假设你在保留策略为 30 天的注册表中未标记两个清单(相隔 1 小时)。 将两条消息排入队列。 然后,30 天后,大约相隔 1 小时,将从队列中检索并处理消息,前提是策略仍然有效。
如果将未标记清单的 delete-enabled
属性设置为 false
,则清单将被锁定且不被策略删除。
重要
保留策略仅适用于时间戳为启用策略后的未标记的清单。 注册表中带更早时间戳的未标记清单不受策略约束。 有关删除映像数据的其他选项,请参阅 删除 Azure 容器注册表中的容器映像 中的示例。
设置保留策略 - CLI
下面的示例演示如何使用 Azure CLI 为注册表中未标记的清单设置保留策略。
启用保留策略
默认情况下,容器注册表中不设置保留策略。 要设置或更新保留政策,请在 Azure CLI 中运行 az acr config retention update 命令。 可以指定介于 0 和 365 之间的天数来保留未标记的清单。 如果未指定天数,则该命令会将默认值设置为 7 天。 保留期后,注册表中的所有未标记清单将自动删除。
以下示例为注册表 myregistry 中未标记的清单设置 30 天的保留策略:
az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests
下面的示例设置一个策略,以便在未标记时立即删除注册表中的任何清单。 通过设置 0 天的保留期来创建此策略。
az acr config retention update \
--registry myregistry --status enabled \
--days 0 --type UntaggedManifests
验证保留策略
如果启用保留期为 0 天的上述策略,则可以快速验证未标记的清单是否被删除:
将测试映像
hello-world:latest
映像推送到注册表,或替换所选的其他测试映像。取消标记
hello-world:latest
映像,例如,使用 az acr repository untag 命令。 未标记的清单将保留在注册表中。az acr repository untag \ --name myregistry --image hello-world:latest
在几秒钟内,未标记的清单将被删除。 可以通过列出存储库中的清单来验证删除结果(例如,使用 az acr manifest list-metadata 命令)。 如果测试映像是存储库中唯一的映像,则存储库本身将被删除。
管理保留策略
要显示注册表中设置的保留策略,请运行 az acr config retention show 命令:
az acr config retention show --registry myregistry
要禁用注册表中的保留策略,请运行 az acr config retention update 命令并设置 --status disabled
:
az acr config retention update \
--registry myregistry --status disabled \
--type UntaggedManifests
设置保留策略 - 门户
还可以在 Azure 门户中设置注册表的保留策略。
启用保留策略
导航到 Azure 容器注册表。 在“策略”下,选择“保留”(预览) 。
在“状态”中,选择“启用” 。
选择介于 0 和 365 之间的天数来保留未标记的清单。 选择“保存” 。
禁用保留策略
- 导航到 Azure 容器注册表。 在“策略”下,选择“保留”(预览) 。
- 在“状态”中,选择“禁用” 。 选择“保存”。