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.

Hinweise

  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

Um die Berechtigungen zu erhalten, die Sie zum Verwalten von Images benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für das Repository:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff 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 über die Google Cloud Console oder die gcloud CLI auflisten.

Die Repository-Liste enthält sowohl Artifact Registry und Container Registry-Repositories. Mit Images in Container Registry arbeiten 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

Führen Sie den Befehl Befehl:

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

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

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:

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 auflisten, Dateien in allen Versionen einer bestimmten Container-Image oder Dateien in einer bestimmten Version eines Images.

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 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: die 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: der Name des Repositorys, in dem sich das Image befindet gespeichert ist.
  • PACKAGE: der Name des Images
  • VERSION: Image-Digest, ein String, der mit sha256: beginnt
  • TAG ist das mit dem Container-Image verknüpfte Tag.

Beispiele

Beachten 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 im Speicherort us-west1 innerhalb des Standardprojekts:

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 Taggen Sie sie, bevor Sie sie per Push in ein Repository übertragen.

Images in einem Repository taggen

Repository-Modi: Standard

Sie können einem Image in einem Artifact Registry-Repository ein Tag hinzufügen, indem Sie die Über die Google Cloud Console oder die Befehlszeile 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 von Image-Namen darunter die Verwaltung domainspezifischer Projekte, Siehe 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 aus einem Image in Artifact Registry entfernen. Verwenden Sie dazu die Methode Über die Google Cloud Console oder die Befehlszeile

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 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.
  • 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.

  • Wenn Sie ein Bild löschen, kann dieser Vorgang nicht mehr rückgängig gemacht werden.
  • Durch das Löschen von Images werden die referenzierten Ebenen nicht sofort gelöscht. Kein Verweis Ebenen werden täglich gelöscht.
  • Bei Remote-Repositories wird die im Cache gespeicherte Kopie des Images 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. Beispiel: gcr-cleaner sucht und löscht alte Bilder 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 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.
  • 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. Dies kann nützlich sein, schnell Manifestdateien untersuchen können.