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.
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.Antworten:
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: scratch
und Bilder, die über erstellt wurden,docker import
keiner Registrierung zugeordnet. Dies sind die berühmtennone:none
Bilder (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.
quelle