我想使用他们的sha256代码拉出centos,tomcat,...的图像
docker pull myimage@sha256:0ecb2ad60
但我找不到sha256代码可以在任何地方使用.
我检查了dockerhub存储库中有关sha256代码的任何提示,但找不到任何.我按标签下载了图片
docker pull tomcat:7-jre8
Run Code Online (Sandbox Code Playgroud)
并检查图像docker inspect以查看元数据中是否有sha256代码,但没有(添加图像的sha256代码可能会更改sha256代码).
我是否必须自己计算图像的sha256代码并使用它?
给定标签`latest`,我们想在Docker Hub上找到具有相同图像ID的另一个标签.
以下是如何使用Docker Hub API v2查找repo的所有标记:
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/fluent/fluentd/tags/?page_size=100 | jq
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不包含图像ID,但始终为此键的"null"值:
$ curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/fluent/fluentd/tags/?page_size=100 | jq
{
"count": 36,
"next": null,
"previous": null,
"results": [
...
{
"name": "v0.14.11",
"full_size": 11964464,
"id": 7084687,
"repository": 219785,
"creator": 2923,
"last_updater": 2923,
"last_updated": "2016-12-27T07:16:41.294807Z",
"image_id": null,
"v2": true,
"platforms": [
5
]
}, …Run Code Online (Sandbox Code Playgroud) 根据https://docs.docker.com/registry/spec/api/,我可以打电话/v2/<name>/tags/list来获取给定图像的标签列表.它工作正常,例如:
{"name"=>"avi/test", "tags"=>["latest"]}
Run Code Online (Sandbox Code Playgroud)
但是,我想要每个标签的摘要.是的,"摘要"实际上是清单的散列(至少我最好从API中理解它;不是100%清楚).但是,我想知道"最新"(和其他所有标签)的唯一标识符是什么.
使用案例:我可能会有人将某个版本标记为最新版本,并希望检查该版本是最新的:
docker push avi/test:2.6
docker tag avi/test:2.6 avi/test:latest
docker push avi/test:latest
# build 2.7
docker push avi/test:2.7
# oops! Forgot to tag latest to 2.7
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,如果我不仅可以检查标签 - 这将给我"2.6","2.7","最新" - 还有摘要(至少是清单),我可以找到各种标签指向的内容,审计等