【问题标题】:docker registry v2 : get parent image namedocker registry v2:获取父镜像名称
【发布时间】:2016-04-19 05:21:22
【问题描述】:

我想使用 docker registry api v2 获取当前图像的父级。有可能吗?

我正在尝试构建具有父/子关系的所有 docker 图像的树结构,我需要每个 docker 图像的父级。我可以使用 GET /v2/_catalog 获取所有存储库,并通过 GET /v2//manifests/latest 获取每个存储库的清单,但我无法弄清楚如何让父级摆脱它。

任何帮助将不胜感激。

【问题讨论】:

    标签: docker docker-registry


    【解决方案1】:

    如果您检查图像的清单,您应该会在 JSON 输出中看到“v1Compatibility”部分的块。

    如果您查看这些,您应该会看到基本图像信息。例如,当我在一张源自 Centos 7 的图像上运行它时:

    curl --insecure https://myregistry:5000/v2/imagename/manifests/latest | grep -i centos
    

    我明白了:

    [...]
    "v1Compatibility": "{\"id\":\"172ab63cd5e007f8b1dbd7659c2d9520bf9e50755c081f39d171a603ad5d0890\",\"parent\":\"0c908fa575ec22f872f78b12d9e57d132b67a683f7deacd9f02462c546bf52dd\",\"created\":\"2016-04-01T21:28:21.706982438Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) LABEL name=CentOS Base Image vendor=CentOS license=GPLv2 build-date=2016-03-31\"]}}"
    "v1Compatibility": "{\"id\":\"3690474eb5b4b26fdfbd89c6e159e8cc376ca76ef48032a30fa6aafd56337880\",\"created\":\"2015-09-07T19:05:48.678585881Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) MAINTAINER The CentOS Project \\u003ccloud-ops@centos.org\\u003e\"]}}"
    [...]
    

    解析这应该会给你你想要的信息。

    【讨论】:

    • 在 v1Compatibility 我们有 id 字段,它可能是父图像的 id(历史中的最后一行)。但我不知道如何使用该 id 获取图像名称。
    • 我只是跟踪 id 和 parent 标识符的链,并且可以跟踪该链。但据我所知,这些是按时间倒序排列的层 ID。这意味着最小的孩子在名单上。到目前为止,我还没有找到哈希映射/相关性,尽管您可以将整个历史追溯到第一个临时图像。
    猜你喜欢
    • 2021-06-02
    • 2019-02-14
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 2023-02-10
    相关资源
    最近更新 更多