在 Azure 容器注册表中使用软删除策略恢复删除的项目(预览版)
Azure 容器注册表 (ACR) 允许启用软删除策略,以便在设置的保留期内恢复任何意外删除的项目。
软删除策略的各个方面
可以随时启用/禁用软删除策略。 在 ACR 中启用软删除策略后,它会将已删除的项目作为设置了保留期的软删除项目进行管理。 因此,你可以列出、筛选和还原软删除的项目。
保留期
软删除项目的默认保持期为 7 天,但可以将保持期值设置为 1 到 90 天。 可以设置、更新和更改保留策略值。 保留期结束后,软删除的项目会过期。
自动清除
自动清除每 24 小时运行一次,在永久删除软删除项目之前,始终考虑保留天数的当前值。 例如,在软删除项目 5 天后,如果将保留天数值从 7 天更改为 14 天,该项目只会在最初软删除后的 14 天后过期。
可用性和定价信息
此功能可在所有服务层级(也称为 SKU)中使用。 有关注册表服务层级的信息,请参阅 Azure 容器注册表服务层。
注意
软删除的项目将按照存储的现行 SKU 定价计费。
预览版限制
重要
软删除策略目前以预览版提供。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Azure 预览版的补充使用条款。
- ACR 目前不支持手动清除软删除的项目。
- 软删除策略不支持异地复制的注册表。
- ACR 不允许同时启用保留策略和软删除策略。 请参阅未标记清单的保留策略。
先决条件
- 用户需要以下权限(在注册表级别)才能执行软删除操作:
权限 | 说明 |
---|---|
Microsoft.ContainerRegistry/registries/deleted/read | 列出软删除的项目 |
Microsoft.ContainerRegistry/registries/deleted/restore/action | 还原软删除的项目 |
- 可以使用本地安装的 Azure CLI 来运行本文中的命令示例。 如果想要在本地使用它,则需要使用 2.0.74 版或更高版本。 为版本运行
az --version
。 如果需要进行安装或升级,请参阅安装 Azure CLI。
- 登录 Azure 门户。
为注册表启用软删除策略 - CLI
使用设置为 1 到 90 天的保留期更新给定
MyRegistry
ACR 的软删除策略。az acr config soft-delete update -r MyRegistry --days 7 --status <enabled/disabled>
显示针对给定
MyRegistry
ACR 配置的软删除策略。az acr config soft-delete show -r MyRegistry
列出软删除的项目 - CLI
使用 az acr repository list-deleted
命令可以提取和列出软删除的存储库。 如需详细信息,请使用 --help
。
列出给定
MyRegistry
ACR 中软删除的存储库。az acr repository list-deleted -n MyRegistry
使用 az acr manifest list-deleted
命令可以提取和列出软删除清单。
列出给定
MyRegistry
ACR 中hello-world
存储库的软删除清单。az acr manifest list-deleted -r MyRegistry -n hello-world
使用 az acr manifest list-deleted-tags
命令可以提取和列出软删除标记。
列出给定
MyRegistry
ACR 中hello-world
存储库的软删除标记。az acr manifest list-deleted-tags -r MyRegistry -n hello-world
筛选
hello-world
存储库的软删除标记,以匹配给定MyRegistry
ACR 中的标记latest
。az acr manifest list-deleted-tags -r MyRegistry -n hello-world:latest
还原软删除的项目 - CLI
az acr manifest restore
命令按标记和摘要还原单个映像。
在给定
MyRegistry
ACR 中按标记latest
和摘要sha256:abc123
还原hello-world
存储库的映像。az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123
在给定
MyRegistry
ACR 中按标记latest
还原hello-world
存储库的最近已删除清单。az acr manifest restore -r MyRegistry -n hello-world:latest
强制还原会覆盖存储库中同名的现有标记。 如果在强制还原期间启用了软删除策略。 覆盖的标记已软删除。 可以使用特定参数
--force, -f
强制还原。在给定
MyRegistry
ACR 中按标记latest
和摘要sha256:abc123
强制还原hello-world
存储库的映像。az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123 -f
重要
还原清单列表不会以递归方式还原任何已软删除的基础清单。 如果你正在还原软删除的 ORAS 项目,则还原主题不会以递归方式还原引用者链。 此外,必须首先还原主题,然后才能还原引用者清单。 否则会引发错误。
为注册表启用软删除策略 - 门户
还可以在 Azure 门户中启用注册表的软删除策略。
导航到你的 Azure 容器注册表。
在“概述”选项卡中,验证“软删除(预览版)”的状态。
如果“状态”为“已禁用”,请选择“更新”。
选中“启用软删除”复选框。
选择
0
到90
天以保留软删除的项目。选择“保存” 以保存更改。
还原软删除的项目 - 门户
导航到你的 Azure 容器注册表。
在“菜单”部分,依次选择“服务”、“存储库”。
在“存储库”中,选择首选的存储库。
选择“管理删除的项目”以查看所有软删除的项目。
注意
启用软删除策略并执行取消标记清单或删除项目等操作后,可以在保留天数过期之前在“管理已删除的项目”中找到这些标记和项目。
筛选必须还原的已删除项目。
选择项目,然后在右栏中选择“还原”。
此时会弹出一个“还原项目”窗口。
选择要还原的标记,在此处可以使用一个选项来选择并恢复任何其他标记。
选择“还原”。
从软删除的存储库还原 - 门户
导航到你的 Azure 容器注册表。
在“菜单”部分,选择“服务”。
在“服务”选项卡中,选择“存储库”。
在“存储库”选项卡中,选择“管理删除的存储库”。
在“软删除的存储库(预览版)”中筛选已删除的存储库。
选择已删除的存储库,在“管理已删除的项目”中筛选已删除的项目。
选择项目,然后在右栏中选择“还原”。
此时会弹出一个“还原项目”窗口。
选择要还原的标记,在此处可以使用选项以选择并恢复任何其他标记。
选择“还原”。
重要
将阻止在源和目标资源中导入软删除的映像。 将映像推送到软删除的存储库会还原软删除的存储库。 不允许推送与已软删除映像共享同一清单摘要的映像。 在这种情况下,会还原软删除的映像。
后续步骤
- 详细了解 Azure 容器注册表中用于删除映像和存储库的选项。