Woher wissen, woher ein Docker-Image stammt?

9

Ich habe ein Docker-Image auf meinem System 12346789ABCD.

Gibt es eine Möglichkeit zu wissen, woher es kommt?

Insbesondere möchte ich wissen, ob es lokal erstellt oder aus einem Repository heruntergeladen und in diesem letzteren Fall aus welchem ​​Repository heruntergeladen wurde.

Sylvain Leroux
quelle
Hallo, keine Antwort, aber vielleicht erster Hinweis - stackoverflow.com/questions/44769315/…
Peter Muryshkin
2
Danke @Peter. Ich habe bereits untersucht docker inspect: docker inspect -f '{{json .}}' debian | jq '{RepoTags,RepoDigests}'Das Vorhandensein von RepoTags und RepoDigest ist ein Hinweis darauf, dass das Bild heruntergeladen wurde. Aber ich kann nicht sehen, woher.
Sylvain Leroux
Starten Sie einen Container, um den Inhalt zu untersuchen.
Peter Muryshkin

Antworten:

4

Wenn es aus einer Registrierung stammt, wird dies normalerweise im Namen des Bildes angezeigt (wenn es nicht aus der Standardregistrierung stammt, Docker Hub). Bilder vom Kai sehen aus wie quay.io/<namespace>/<image name>:<tag>.

Einige Bilder stammen von irgendwo anders. Beispielsweise werden Bilder, die erstellt wurden, FROM: scratchund Bilder, die über erstellt wurden, docker importkeiner Registrierung zugeordnet. Dies sind die berühmten none:noneBilder (kein Repository und kein Tag). In diesem Fall haben Sie nur die ID (SHA) und müssen Sherlock Holmes (oder Jessie Frazelle) sein, um sie mit etwas abzugleichen.

Sie können also nur sehen, was im Manifest geschrieben steht. Solltest du ihm vertrauen? Das Manifest kann mit Docker-Inhaltsvertrauen signiert werden, auch wenn der Bildinhalt selbst nicht vorhanden ist. Wenn Sie mehr Sicherheit in Bezug auf die Herkunft benötigen, benötigen Sie wahrscheinlich einen Notar, um sicherzustellen, dass das Vertrauen in der gesamten Delegationskette gewahrt bleibt.

Hoffe das beantwortet die Frage.

Bruce Becker
quelle