16.3. 注解解析


有些 OCI 介质类型不使用标签,因此不包括过期时间戳等重要信息。Red Hat Quay 支持通过注解传递的元数据来容纳没有将这些标签用于元数据传输的 OCI 介质类型。现在,可以使用 ORAS (OCI Registry 作为存储)来嵌入信息与工件类型,以帮助确保镜像正确运行,例如:

以下流程使用 ORAS 将过期日期添加到 OCI 介质工件中。

重要

如果您使用 podman push 推送镜像,然后使用 oras 添加注解,则 MIME 类型将改变。因此,您无法使用 podman pull 拉取相同的镜像,因为 Podman 无法识别 MIME 类型。

先决条件

流程

  • 默认情况下,一些 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>
    1
    为 2 天设置过期时间,由 2d 表示。
    2
    添加 expiration 标签。

    输出示例

    ✓ 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

验证

  1. 使用 或as 拉取镜像。例如:

    $ oras pull quay.io/<organization_name>/<repository>/<image_name>:<tag>
  2. 使用 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"}}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.