7.7. 设置标签过期
可以使用标签过期功能,将镜像标签设置为在所选日期和时间从 Red Hat Quay 存储库 过期。这个功能包括以下特征:
- 当镜像标签过期时,会从存储库中删除。如果它是特定镜像的最后一个标签,则镜像也会被删除。
- 过期时间基于每个标签设置。它没有作为整个存储库设置。
- 标签过期或删除后,它不会立即从 registry 中删除。这取决于 时间机器 功能中分配的时间,定义何时永久删除标签或垃圾收集的时间。默认情况下,这个值设置为 14 天,但管理员可以将此时间调整为多个选项之一。直到垃圾回收发生的时间点,可以恢复标签更改。
Red Hat Quay 超级用户没有与从用户存储库中删除已过期的镜像相关的特殊权限。超级用户没有收集信息并在用户存储库上执行的操作的中央机制。每个存储库的所有者是管理过期和删除其镜像的所有者。
标签过期时间可通过以下两种方式之一设置:
-
在创建镜像时,通过在 Dockerfile 中设置
quay.expires-after=标签。这会将一个时间设置为在构建镜像时过期。 通过在 Red Hat Quay UI 上选择过期日期。例如:
设置标签过期可帮助自动清理旧的或未使用的标签,有助于减少存储空间。
7.7.1. 从存储库设置标签过期 复制链接链接已复制到粘贴板!
流程
- 在 Red Hat Quay v2 UI 仪表板上,单击导航窗格中的 Repositories。
- 单击具有镜像标签的存储库的名称。
- 点镜像菜单 kebab 并选择 Change expiration。
-
可选。或者,您可以通过点多个标签框来批量添加过期日期,然后选择 Actions
Set expiration。 -
在 Change Tags Expiration 窗口中,设置一个到期日期,指定星期几、月份、月份和年份。例如,
2023 年 11 月 15 日星期三。或者,您可以点击日历按钮并手动选择日期。 -
设置时间,例如
2:30 PM。 -
单击 Change Expiration 以确认日期和时间。返回以下通知:成功将
标签测试的过期时间设置为 2023 年 11 月 15 日,2:26 PM。 在 Red Hat Quay v2 UI Tags 页面中,您可以看到标签设置为过期。例如:
7.7.2. 设置 Dockerfile 中的标签过期 复制链接链接已复制到粘贴板!
您可以使用 docker label 命令将标签(例如 quay.expires-after=20h )添加到镜像标签中,以便标签在指示的时间后自动过期。接受小时、天或周的以下值:
-
1h -
2d -
3w
过期时间从镜像推送到 registry 的时间开始。
流程
输入以下
docker label命令,为所需的镜像标签添加标签。标签的格式应为quay.expires-after=20h,以指示该标签应当在 20 小时后过期。使用所需的过期时间替换 20h。例如:$ docker label quay.expires-after=20h quay-server.example.com/quayadmin/<image>:<tag>
7.7.3. 使用 API 设置标签过期 复制链接链接已复制到粘贴板!
可以使用 API 将镜像标签设置为过期。
先决条件
- 您已创建了 OAuth 访问令牌。
-
您已在
config.yaml文件中设置了BROWSER_API_CALLS_XHR_ONLY: false。
流程
您可以使用
PUT /api/v1/repository/{repository}/tag/{tag}命令并传递 expiration 字段来设置标签过期:$ curl -X PUT \ -H "Authorization: Bearer <bearer_token>" \ -H "Content-Type: application/json" \ --data '{ "manifest_digest": "<manifest_digest>" }' \ https://<quay-server.example.com>/api/v1/repository/<namespace>/<repository_name>/tag/<tag>输出示例
"Updated"