web-dev-qa-db-ja.com

イメージのダイジェストを取得するためのDockerレジストリv2APIエンドポイントとは何ですか?

https://docs.docker.com/registry/spec/api/ によると/v2/<name>/tags/list特定の画像のタグのリストを取得します。正常に動作します。例:

{"name"=>"avi/test", "tags"=>["latest"]}

ただし、各タグのダイジェストが欲しいのですが。はい、「ダイジェスト」は実際にはマニフェストのハッシュです(少なくとも、APIから最もよく理解しているように、100%明確ではありません)。ただし、「最新」(および他のすべてのタグ)の一意の識別子が何であるかを知る方法が必要です。

ユースケース:誰かがバージョンに最新のタグを付けて、titが最新であることを確認したい場合があります。

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

上記の場合、「2.6」、「2.7」、「最新」のタグだけでなく、ダイジェスト(少なくともマニフェストの)もチェックできれば、さまざまなタグが何を指しているのかを見つけることができます。 、監査など。

10
deitch

AFAIK、ダイジェストAPIはありません。ただし、 v2 API仕様 によると、/v2/<name>/manifests/<reference>に対してHEADまたはGETリクエストを実行できます。応答には、指定されたマニフェストのダイジェストを含むDocker-Content-Digestヘッダーが含まれます(例:latest)。

13
Ryan Wentzel