16.3. 注解解析
有些 OCI 介质类型不使用标签,因此不包括过期时间戳等重要信息。Red Hat Quay 支持通过注解传递的元数据来容纳没有将这些标签用于元数据传输的 OCI 介质类型。现在,可以使用 ORAS (OCI Registry 作为存储)来嵌入信息与工件类型,以帮助确保镜像正确运行,例如:
以下流程使用 ORAS 将过期日期添加到 OCI 介质工件中。
重要
如果您使用 podman push
推送镜像,然后使用 oras
添加注解,则 MIME 类型将改变。因此,您无法使用 podman pull
拉取相同的镜像,因为 Podman 无法识别 MIME 类型。
先决条件
-
您已下载了
oras
CLI。如需更多信息,请参阅安装 https://oras.land/docs/installation。 - 您已将 OCI 介质工件推送到 Red Hat Quay 存储库。
流程
默认情况下,一些 OCI 介质类型(如
application/vnd.oci.image.manifest.v1+json
)不使用某些标签,如过期时间戳。您可以使用 ORAS (或 )等
CLI 工具向 OCI 介质类型添加注解。例如:$ oras push --annotation "quay.expires-after=2d" \ 1 --annotation "expiration = 2d" \ 2 quay.io/<organization_name>/<repository>/<image_name>:<tag>
输出示例
✓ Exists application/vnd.oci.empty.v1+json 2/2 B 100.00% 0s └─ sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a ✓ Uploaded application/vnd.oci.image.manifest.v1+json 561/561 B 100.00% 511ms └─ sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b Pushed [registry] quay.io/stevsmit/testorg3/oci-image:v1 ArtifactType: application/vnd.unknown.artifact.v1 Digest: sha256:9b4f2d43b62534423894d077f0ff0e9e496540ec8b52b568ea8b757fc9e7996b
验证
使用
或as
拉取镜像。例如:$ oras pull quay.io/<organization_name>/<repository>/<image_name>:<tag>
使用
oras
检查更改。例如:$ oras manifest fetch quay.io/<organization_name>/<repository>/<image_name>:<tag>
输出示例
{"schemaVersion":2,"mediaType":"application/vnd.oci.image.manifest.v1+json","artifactType":"application/vnd.unknown.artifact.v1","config":{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="},"layers":[{"mediaType":"application/vnd.oci.empty.v1+json","digest":"sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a","size":2,"data":"e30="}],"annotations":{"org.opencontainers.image.created":"2024-07-11T15:22:42Z","version ":" 8.11"}}