Zur Image-Verwaltung gehört das Auflisten von Images in einem Repository, das Hinzufügen und Löschen von Tags, das Kopieren von Images in ein neues Repository und das Löschen von Images.
Informationen zum Hochladen eines lokalen Images in Container Registry oder zum Herunterladen eines in Container Registry gespeicherten Images finden Sie unter Images hoch- und herunterladen.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
Sie haben Docker installiert.
Sie haben Berechtigungen zum Zugriff auf die Registry.
Images nach ihrem Speicherort auflisten
Sie können die Images an einem bestimmten Hoststandort mithilfe der Google Cloud Console oder der Befehlszeile auflisten.
Console
So listen Sie die Images an einem Ihrer Hoststandorte auf:
Zur Seite "Container Registry"
Verwenden Sie den Selector über Name, um den Hoststandort auszuwählen. Zu den Optionen gehören Alle Standorte und die Hostnamen, die das Projekt derzeit verwendet, wobei es sich um gcr.io, us.gcr.io, eu.gcr.io oder asia.gcr.io handeln kann.
gcloud
Verwenden Sie folgenden Befehl, um die Images an einem Ihrer Hoststandorte aufzulisten:
gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]
Dabei gilt:
[HOSTNAME]
wird in der Konsole unterLocation
aufgeführt. Dies kanngcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
sein.[PROJECT-ID]
ist Ihre Projekt-ID in der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
Wenn Ihre Registrys verschachtelt sind, geben Sie zum Auflisten der verschachtelten Images die Repository-Ebene an, auf der sie gespeichert sind:
gcloud container images list --repository=[HOSTNAME]/[PROJECT-ID]/[IMAGE]
Dabei ist [IMAGE]
das Repository, unter dem mehr Images verschachtelt sind.
Weitere Informationen finden Sie in der Dokumentation zu gcloud container images list
.
Versionen eines Images auflisten
Eine Registry kann verschiedene Versionen eines Images enthalten. Diese Versionen haben denselben Image-Namen und werden anhand ihres Digests und ihrer Tags identifiziert.
Console
So rufen Sie den Digest und die Tags eines Images ab:
Zur Seite "Container Registry"
Klicken Sie auf den Image-Namen, um die Versionen des Images aufzurufen. Der abgeschnittene Digest wird unter Name und die Tags werden unter Tags aufgelistet.
Wenn Sie den vollständigen Digest sehen möchten, klicken Sie auf die Version des Images, um dessen Metadaten abzurufen. Der Digest heißt Image-Digest.
gcloud
Führen Sie folgenden Befehl aus, um die abgeschnittenen Digests und Tags eines Images aufzulisten:
gcloud container images list-tags [HOSTNAME]/[PROJECT-ID]/[IMAGE]
Dabei gilt:
[HOSTNAME]
wird in der Konsole unterLocation
aufgeführt. Dies kanngcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
sein.[PROJECT-ID]
ist Ihre Projekt-ID in der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.[IMAGE]
ist der Image-Name in Container Registry.
Führen Sie folgenden Befehl aus, um den vollständigen Digest der Versionen eines bestimmten Images aufzulisten:
gcloud container images list-tags --format='get(digest)' [HOSTNAME]/[PROJECT-ID]/[IMAGE]
Weitere Informationen finden Sie in der Dokumentation zu gcloud container images list-tags
.
Images taggen
Sie können die Google Cloud Console oder die Befehlszeile verwenden, um einem Image ein Tag hinzuzufügen.
Ein Digest ist eine automatisch generierte eindeutige Kennung für eine Image-Version. Ein Tag fungiert als Label, das Sie auf eine bestimmte Version eines Images anwenden können.
Sie können einem Image mehrere Tags hinzufügen. Innerhalb eines Repositorys muss jedes Tag für ein Image eindeutig sein. Wenn Sie beispielsweise das Tag release-candidate
der neunten Version Ihres Images hinzufügen, wird das Tag von der neunten Version in die zehnte Version verschoben.
Wenn Sie ein Image nicht mit einem Tag versehen, fügt der Docker-Client das Standard-Tag latest
hinzu.
Das bedeutet, dass mit latest
nicht die neueste Version eines Images angegeben wird.
Stattdessen verweist dies auf eine Image-Version zur Verfügung, die Sie speziell als latest
gekennzeichnet haben, oder auf die neueste Version eines Images ohne Tag. Da die Bedeutung von latest
unklar ist, empfehlen wir, das Tag latest
zu vermeiden.
Console
So taggen Sie ein Image, das in Container Registry gehostet wird:
Zur Seite "Container Registry"
Klicken Sie auf den Image-Namen, um die Version des Images aufzurufen.
Klicken Sie unter Tags auf das Bearbeitungssymbol.
Geben Sie neue Tags in das Feld ein und klicken Sie danach auf SPEICHERN.
gcloud
Verwenden Sie den Befehl gcloud
container images add-tag
, um in Container Registry gehostete Images zu taggen:
gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]
oder
gcloud container images add-tag \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST] \
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[NEW_TAG]
Dabei gilt:
[HOSTNAME]
wird in der Konsole unterLocation
aufgeführt. Dies kanngcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
sein.[PROJECT-ID]
ist Ihre Projekt-ID in der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.[IMAGE]
ist der Image-Name in Container Registry.[TAG]
ist das Tag, das bereits auf das Image angewendet wurde.[IMAGE_DIGEST]
ist der sha256-Hash-Wert des Image-Inhalts.[NEW_TAG]
ist das neue Tag, das Sie dem Image hinzufügen.
Weitere Informationen zu diesem Befehl finden Sie unter gcloud container images add-tag
.
Lokale Images für das Hosting in Container Registry taggen
Bevor Sie ein lokales Image in Container Registry hochladen können, müssen Sie es zuerst mit dem Namen der Registry taggen. Eine Anleitung finden Sie unter Image in eine Registry hochladen.
Tags von Images entfernen
Sie können die Google Cloud Console oder die Befehlszeile verwenden, um ein Tag von einem Image zu entfernen.
Console
Zur Seite "Container Registry"
Klicken Sie auf den Image-Namen, um die Version des Images aufzurufen.
Klicken Sie unter Tags auf das Bearbeitungssymbol.
Löschen Sie das Tag und klicken Sie danach auf SPEICHERN.
gcloud
Verwenden Sie folgenden Befehl, um ein Tag von einem Image zu entfernen:
gcloud container images untag [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
Dabei gilt:
[HOSTNAME]
wird in der Konsole unterLocation
aufgeführt. Dies kanngcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
sein.[PROJECT-ID]
ist Ihre Projekt-ID in der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.[IMAGE]
ist der Image-Name in Container Registry.[TAG]
ist das Tag, das Sie entfernen möchten.Weitere Informationen zu diesem Befehl finden Sie unter
gcloud container images untag
.
Images in eine neue Registry kopieren
Sie können ein Image über die Google Cloud Platform Console oder die Befehlszeile von einem Repository in ein anderes kopieren. Dazu müssen Sie auf beide Repositories zugreifen können.
Zum Kopieren eines Images von einem Repository in ein anderes verwenden Sie den Befehl gcloud
container images add-tag
und ermitteln das zu verschiebende Image anhand seines Tags:
gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]:[SOURCE_TAG] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]
oder anhand seines Digests:
gcloud container images add-tag \
[SOURCE_HOSTNAME]/[SOURCE_PROJECT-ID]/[SOURCE_IMAGE]@[IMAGE_DIGEST] \
[DESTINATION_HOSTNAME]/[DESTINATION_PROJECT-ID]/[DESTINATION_IMAGE]:[DESTINATION_TAG]
Dabei gilt in beiden Fällen für Quelle und Ziel:
[HOSTNAME]
ist der Standort, an dem das Image gehostet wird, und lautet entwedergcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
.[PROJECT-ID]
ist die Projekt-ID der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.[IMAGE]
ist der Image-Name in Container Registry.[IMAGE_DIGEST]
ist der sha256-Hash-Wert des Image-Inhalts.[TAG]
ist das Tag, das das zu verschiebende Quell-Image identifiziert, bzw. das Tag, das auf das Image im Ziel-Repository anzuwenden ist.
Beispiel: Wenn Sie das Image my-image
in das Repository eines anderen Projekts und in den europäischen Host kopieren möchten, Image-Namen und Tag aber beibehalten möchten, führen Sie folgenden Befehl aus:
gcloud container images add-tag \
gcr.io/[PROJECT-ID]/my-image:tag1 \
eu.gcr.io/[OTHER-PROJECT-ID]/my-image:tag1
Dabei stehen [PROJECT-ID]
und [OTHER-PROJECT-ID]
jeweils für die in der Google Cloud Console verwendeten Projekt-IDs der Projekte, aus denen kopiert bzw. in die kopiert wird.
Sie brauchen Zugriff auf die Repositories in beiden Projekten. Wenn eine der beiden Projekt-IDs einen Doppelpunkt hat (:
), finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
Weitere Informationen zu diesem Befehl finden Sie unter gcloud container images add-tag
.
Bilder löschen
Sie können ein Image mit der Google Cloud Console oder der Befehlszeile löschen. Das Löschen eines Images kann nicht rückgängig gemacht werden.
Es sind noch weitere Tools für die Verwaltung nicht verwendeter Images verfügbar. Das Tool gcr-clean sucht und löscht beispielsweise alte Images anhand verschiedener Kriterien. Durch Entfernen nicht verwendeter Images können Sie die Speicherkosten reduzieren. Das gcr-cleaner
-Tool ist kein offizielles Google-Produkt.
So löschen Sie Images aus der Google Cloud Console oder mit der gcloud CLI:
Console
Zur Seite "Container Registry"
Klicken Sie auf den Image-Namen, um die Version(en) des Images aufzurufen.
Klicken Sie in der Registry auf die Kästchen neben den Versionen des Images, die Sie löschen möchten.
Klicken Sie oben auf der Seite auf LÖSCHEN.
Klicken Sie im Pop-up-Fenster Repository-Elemente löschen auf LÖSCHEN.
gcloud
Führen Sie einen der folgenden Befehle aus:
Für ein durch seinen Digest identifiziertes Image:
gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]@[IMAGE_DIGEST]
Für ein durch sein Tag identifiziertes Image mit mehreren Tags:
gcloud container images delete [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG] --force-delete-tags
Dabei gilt:
[HOSTNAME]
wird in der Konsole unterLocation
aufgeführt. Dies kanngcr.io
,us.gcr.io
,eu.gcr.io
oderasia.gcr.io
sein.[PROJECT-ID]
ist Ihre Projekt-ID in der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.[IMAGE]
ist der Image-Name in Container Registry.[IMAGE_DIGEST]
ist der sha256-Hash-Wert des Image-Inhalts.[TAG]
ist das Tag des Images, das Sie entfernen möchten.
Weitere Informationen zu diesem Befehl finden Sie unter gcloud container images delete
.
Nächste Schritte
- Mehr über die Konfiguration der Zugriffssteuerung erfahren.
- Mehr über Komponenten und Funktionen von Container Registry erfahren.