Ähnlich wie bei der Frage "What´s the sha256 code of a docker image?" möchte ich den Digest eines Docker-Images finden. Ich kann den Digest sehen, wenn ich ein Bild herunterladen:Kann ich einen Bildauszug erhalten, ohne das Bild herunterzuladen?
$ docker pull waisbrot/wait:latest
latest: Pulling from waisbrot/wait
Digest: sha256:6f2185daa4ab1711181c30d03f565508e8e978ebd0f263030e7de98deee5f330
Status: Image is up to date for waisbrot/wait:latest
$
Eine andere Frage, What is the Docker registry v2 API endpoint to get the digest for an image hat eine Antwort darauf hindeutet, die Docker-Content-Digest
-Header.
Ich kann sehen, dass es einen Docker-Content-Digest
Header, wenn ich das Manifest für das Bild holen:
$ curl 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:waisbrot/wait:pull' -H "Authorization: Basic ${username_password_base64}"
# store the resulting token in DT
$ curl -v https://registry-1.docker.io/v2/waisbrot/wait/manifests/latest -H "Authorization: Bearer $DT" -XHEAD
* Trying 52.7.141.30...
* Connected to registry-1.docker.io (52.7.141.30) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.docker.io
* Server certificate: RapidSSL SHA256 CA - G3
* Server certificate: GeoTrust Global CA
> GET /v2/waisbrot/wait/manifests/latest HTTP/1.1
> Host: registry-1.docker.io
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Bearer LtVRw-etc-etc-etc
>
< HTTP/1.1 200 OK
< Content-Length: 4974
< Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
< Docker-Content-Digest: sha256:128c6e3534b842a2eec139999b8ce8aa9a2af9907e2b9269550809d18cd832a3
< Docker-Distribution-Api-Version: registry/2.0
< Etag: "sha256:128c6e3534b842a2eec139999b8ce8aa9a2af9907e2b9269550809d18cd832a3"
< Date: Wed, 07 Sep 2016 16:37:15 GMT
< Strict-Transport-Security: max-age=31536000
Allerdings ist dieser Header nicht das gleiche. Der pull
Befehl hat mich 6f21
und die Überschrift zeigt 128c
. Ferner wird der Pull-Befehl nicht funktioniert, dass verdauen:
$ docker pull waisbrot/[email protected]:128c6e3534b842a2eec139999b8ce8aa9a2af9907e2b9269550809d18cd832a3
Error response from daemon: manifest unknown: manifest unknown
während Dinge, wie ich arbeiten will, wenn ich die richtige verdauen haben:
$ docker pull waisbrot/[email protected]:6f2185daa4ab1711181c30d03f565508e8e978ebd0f263030e7de98deee5f330 12:46 [email protected]
sha256:6f2185daa4ab1711181c30d03f565508e8e978ebd0f263030e7de98deee5f330: Pulling from waisbrot/wait
Digest: sha256:6f2185daa4ab1711181c30d03f565508e8e978ebd0f263030e7de98deee5f330
Status: Image is up to date for waisbrot/[email protected]:6f2185daa4ab1711181c30d03f565508e8e978ebd0f263030e7de98deee5f330
Was ich suche ist eine Möglichkeit, übersetze das latest
Tag (das sich ständig ändert) in einen festen Digest, den ich zuverlässig ziehen kann. Aber ich möchte es nicht herunterziehen, um diese Übersetzung zu machen.
Whoah, ich habe keine Lösung so leicht erwartet! Ja, das scheint die Antwort zu sein: Wenn ich diesen Header hinzufüge, ist der Digest-Header, den ich zurückbekomme, der, nach dem ich suche. –