【发布时间】:2020-04-11 17:25:50
【问题描述】:
我正在尝试使用它的 SHA256 哈希搜索图像:
我有 sha256 哈希,我想知道是否存在任何具有此 sha256 哈希的 docker 映像。是否有可能做到这一点以及如何做到这一点?
【问题讨论】:
标签: docker docker-compose dockerfile containers docker-registry
我正在尝试使用它的 SHA256 哈希搜索图像:
我有 sha256 哈希,我想知道是否存在任何具有此 sha256 哈希的 docker 映像。是否有可能做到这一点以及如何做到这一点?
【问题讨论】:
标签: docker docker-compose dockerfile containers docker-registry
您可以列出所有带有docker images 的图像并找到一个特定的:
docker images --no-trunc -q | grep <image_hash>
或者你想通过一大块哈希数进行搜索:
docker images -q | grep <image_hash>
【讨论】:
这是我所知道的使用 Docker 注册表 API 的最简单方法。如果我在本地网络上有一个现有的 Docker 存储库,我可以使用 SHA 哈希查询那里是否存在特定的图像。只需要发出一个简单的 HTTP GET 请求。像这样组装字符串 -
FullURL = DomainAndPort + "/v2/" + imageName + "/blobs/sha256:" + imageHash;
在我们的网络回购中适用于我的示例请求 -
http://10.10.9.84:5000/v2/hello-world/blobs/sha256:8089101ead9ce9b8c68d6859995c98108e1022c23beaa55754acb89d66fd3381
将该字符串输入 Chrome 浏览器会返回一个描述图像的 JSON 对象。如果您输入无效的 sha256 哈希,则 API 返回 -
{"errors":[{"code":"DIGEST_INVALID","message":"provided digest did not match uploaded content","detail":{}}]}
更多详情见https://docs.docker.com/registry/spec/api/中的“拉层”
【讨论】: