Bilder verwalten

Auf dieser Seite wird gezeigt, wie Sie Container-Images in einem Docker-Repository verwalten. 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 Hoch- und Herunterladen von Images finden Sie unter Images hoch- und herunterladen.

Hinweis

  1. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.
  2. Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
  3. (Optional) Konfigurieren Sie die Standardeinstellungen für gcloud-Befehle.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Bildern benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Bilder auflisten

Repository-Modi: standard, remote

Sie können die Images mit der Google Cloud Console oder der gcloud CLI auflisten.

Die Repository-Liste enthält sowohl Artifact Registry und Container Registry-Repositories. Informationen zum Arbeiten mit Images in einem Container Registry-Repository finden Sie in der Container Registry-Dokumentation unter Images verwalten.

Console

So zeigen Sie Images in einem Repository an:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Repository mit dem Container-Image.

  3. Klicken Sie auf ein Bild, um die zugehörigen Versionen aufzurufen.

gcloud

Um alle Images im Standardprojekt, im Repository und im Standort, wenn die Standardwerte konfiguriert sind:

gcloud artifacts docker images list

Um Images in einem Repository an einem bestimmten Speicherort aufzulisten, führen Sie folgenden Befehl aus:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Um alle Digests und Tags für ein bestimmtes Image aufzulisten, führen Sie folgenden Befehl aus:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

Ersetzen Sie die folgenden Werte:

  • LOCATION ist der/die/das regional oder multiregional Speicherort des Repositorys.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • --include-tags zeigt alle Image-Versionen einschließlich Digests und Tags an. Wenn dieses Flag nicht angegeben wird, enthält die zurückgegebene Liste nur übergeordnete Container-Images.

Angenommen, Sie haben ein Image mit folgenden Merkmalen:

  • Speicherort des Repositorys: us-west1
  • Repository-Name: my-repo
  • Projekt-ID: my-project
  • Image-Name: my-image

Der vollständige Repository-Name lautet:

us-west1-docker.pkg.dev/my-project/my-repo

Der vollständige Image-Name lautet dann:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

Weitere Informationen zum Format der Image-Namen finden Sie unter Repository- und Image-Namen.

Dateien auflisten

Repository-Modi: standard, remote

Sie können Dateien in einem Repository, Dateien in allen Versionen eines bestimmten Container-Images oder Dateien in einer bestimmten Version eines Images auflisten.

Für alle folgenden Befehle können Sie eine maximale Anzahl von Dateien festlegen, die zurückgegeben werden sollen indem Sie dem Befehl das Flag --limit hinzufügen.

Zum Auflisten aller Dateien im Standardprojekt, Repository und Standort, wenn die Standardwerte konfiguriert sind:

gcloud artifacts files list

Führen Sie den folgenden Befehl aus, um Dateien in einem bestimmten Projekt, Repository und an einem bestimmten Speicherort aufzulisten:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

So listen Sie Dateien für alle Versionen eines bestimmten Container-Images auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

So listen Sie Dateien für eine bestimmte Container-Image-Version auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
So listen Sie Dateien für ein bestimmtes Tag auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Ersetzen Sie die folgenden Werte:

  • LOCATION: der regional oder multiregional Speicherort des Repositorys.
  • PROJECT: Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • PACKAGE: der Name des Images
  • VERSION: Image-Digest, ein String, der mit sha256: beginnt
  • TAG: das Tag, das mit dem Container-Image verknüpft ist.

Beispiele

Betrachten Sie die folgenden Bildinformationen:

  • Projekt: my-project
  • Repository: my-repo
  • Speicherort des Repositorys: us-west1
  • Image: my-app

Mit dem folgenden Befehl werden alle Dateien im Repository my-repo am Speicherort us-west1 im Standardprojekt aufgelistet:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Der folgende Befehl listet Dateien in der Image-Version mit den Benachrichtigung sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
Der folgende Befehl listet Dateien in der Image-Version mit den Tag 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

Images taggen

Sie können vorhandene Images in einem Artifact Registry-Repository taggen oder die Images taggen, bevor Sie sie in ein Repository hochladen.

Images in einem Repository taggen

Repository-Modi: standard

Sie können einem Image in einem Artifact Registry-Repository ein Tag mithilfe der Google Cloud Console oder mit der Befehlszeile hinzufügen. In einem Repository kann ein Tag immer nur einmal für eine bestimmte Version eines Images vorkommen. Wenn es also mehrere Versionen eines Images gibt, gilt jedes Tag nur für eine dieser Versionen. Wenn Sie einem Image ein Tag hinzufügen, das bereits in Verwendung ist, wird das Tag von der ursprünglichen Version zur neu getaggten Version verschoben.

Console

So taggen Sie ein Image in einem Repository:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Image, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Image-Version aus, die getaggt werden soll.

  4. Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (Weitere Aktionen) und dann auf Tags bearbeiten.

  5. Geben Sie neue Tags in das Feld ein und klicken Sie danach auf SPEICHERN.

gcloud

Zum Taggen von Images in einem Repository geben Sie die Image-Version mithilfe von den Image-Digest oder das Tag und geben dann das hinzuzufügende Tag an. Führen Sie einen der folgenden Befehle aus:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Dabei gilt:

  • IMAGE-VERSION ist der vollständige Name der Image-Version, die getaggt werden soll, unter Verwendung des Image-Digests oder eines vorhandenes Tags für die Image-Version.
  • TAG ist der vollständige Name des Tags, das Sie hinzufügen möchten.

Angenommen, Sie haben ein Image mit folgenden Merkmalen:

  • Speicherort des Repositorys: us-west1
  • Repository-Name: my-repo
  • Projekt-ID: my-project
  • Image-Name: my-image
  • Vorhandenes Tag: iteration6-final
  • Tag zum Hinzufügen: release-candidate

Um der Version des Images mit dem Tag iteration6-final das Tag release-candidate hinzuzufügen, führen Sie den folgenden Befehl aus:

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

Weitere Informationen zum Format des Image-Namens sowie zur Handhabung von auf Domains beschränkten Projekten finden Sie unter Repository- und Image-Namen.

Lokale Images taggen

Damit Sie ein lokales Image in Artifact Registry hochladen können, müssen Sie es zuerst mit dem Namen des Repositorys taggen. Eine Anleitung dazu finden Sie unter Push- und Pull-Modus.

Tags von Images entfernen

Repository-Modi: standard

Sie können ein Tag mit der Google Cloud Console oder der Befehlszeile aus einem Image in Artifact Registry entfernen.

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf das Image, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Image-Version aus, dessen Tag entfernt werden soll.

  4. Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (Weitere Aktionen) und dann auf Tags bearbeiten.

  5. Löschen Sie das Tag und klicken Sie danach auf SPEICHERN.

gcloud

Um ein Tag zu löschen und aus dem Image zu entfernen, führen Sie folgenden Befehl aus:

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Dabei gilt:

  • LOCATION ist der/die/das regional oder multiregional Speicherort des Repositorys.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Domain-übergreifende Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Version, die Sie löschen möchten.

Bilder löschen

Repository-Modi: standard, remote

Sie können ein komplettes Container-Image oder eine bestimmte Image-Version löschen, die mit einem Tag oder Digest verknüpft ist.

  • Das Löschen eines Bildes kann nicht rückgängig gemacht werden.
  • Wenn Sie Bilder löschen, werden die referenzierten Ebenen nicht sofort gelöscht. Ebenen ohne Verweise werden täglich gelöscht.
  • Bei Remote-Repositories wird die im Cache gespeicherte Kopie des Bildes entfernt. Das Image bleibt in der Upstream-Quelle verfügbar. Wenn die Fernbedienung eine neue Anfrage für dasselbe Image erhält, laden Sie ihn noch einmal herunter und speichern Sie ihn noch einmal im Cache.

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 ein Image über die Google Cloud Console oder die gcloud CLI:

Console

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf den Image-Namen, um die Versionen des Images aufzurufen.

  3. Wählen Sie die Versionen aus, die Sie löschen möchten.

  4. Klicken Sie auf Löschen.

  5. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Um ein Image und alle zugehörigen Tags zu löschen, führen Sie folgenden Befehl aus:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Um eine bestimmte Image-Version zu löschen, verwenden Sie einen der folgenden Befehle:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

oder

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Dabei gilt:

  • LOCATION ist der/die/das regional oder multiregional Speicherort des Repositorys.
  • PROJECT ist Ihre Google Cloud-Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Domain-übergreifende Projekte.
  • REPOSITORY ist der Name des Repositorys, in dem das Image gespeichert ist.
  • IMAGE ist der Name des Images im Repository.
  • TAG ist das Tag für die Version, die Sie löschen möchten. Wenn mehrere Tags mit derselben Image-Version verknüpft sind, müssen Sie --delete-tags angeben, damit die Image-Version ohne vorheriges Entfernen der Tags gelöscht wird.
  • IMAGE-DIGEST ist der sha256-Hash-Wert für die Version, die Sie löschen möchten. Wenn ein Tag mit dem Image-Digest verknüpft ist, müssen Sie --delete-tags angeben, damit die Image-Version ohne vorheriges Entfernen des Tags gelöscht wird.
  • Mit --delete-tags werden alle Tags entfernt, die auf die Image-Version angewendet werden. Mit diesem Flag können Sie das Löschen einer Image-Version erzwingen, wenn Folgendes gilt:
    • Sie haben ein Tag angegeben, aber mit der Image-Version sind weitere Tags verknüpft.
    • Sie haben einen Image-Digest mit mindestens einem Tag angegeben.

Nächste Schritte

  • Einzelne Dateien herunterladen in einem Image gespeichert werden, ohne Docker-Befehle zu verwenden. Das kann nützlich sein, um Manifestdateien schnell zu prüfen.