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

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

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie 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- als auch 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 rufen Sie Images in einem Repository auf:

  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 Versionen zu sehen.

gcloud

So listen Sie alle Images im Standardprojekt, -Repository und -standort auf, wenn die Standardwerte konfiguriert sind:

gcloud artifacts docker images list

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

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 regionale oder multiregionale Speicherort für das Repository.
  • 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
  • Repository-Name: my-repo
  • Projekt-ID: my-project
  • Image-Name: my-image

Der vollständige Repository-Name lautet:

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

Der vollständige Image-Name lautet:

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

Weitere Informationen zum Format für 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 die maximale Anzahl von Dateien festlegen, die zurückgegeben werden sollen. Dazu fügen Sie dem Befehl das Flag --limit hinzu.

So listen Sie alle Dateien im Standardprojekt, -Repository und -standort auf, 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 ist der regionale oder multiregionale Speicherort für das Repository.
  • 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.
  • PACKAGE ist der Name des Images.
  • VERSION ist der Image-Digest, ein String, der mit sha256: beginnt.
  • TAG ist das mit dem Container-Image verknüpfte Tag.

Beispiele

Sehen Sie sich die folgenden Bildinformationen an:

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

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

gcloud artifacts files list \
    --location=us-central1 \
    --repository=my-repo
Mit dem folgenden Befehl werden Dateien in der Version des Images mit dem Digest-sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356 aufgelistet

gcloud artifacts files list \
    --project=my-project \
    --location=us-central1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
Mit dem folgenden Befehl werden Dateien in der Image-Version mit dem Tag 1.0-dev aufgelistet

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

Images taggen

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

Images in einem Repository taggen

Repository-Modi: Standard

Sie können einem Image in einem Artifact Registry-Repository über die Google Cloud Console oder die Befehlszeile ein Tag 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

Wenn Sie Images in einem Repository taggen möchten, geben Sie die Image-Version mithilfe des Image-Digests oder -Tags und dann das hinzuzufügende Tag an. Führen Sie einen der folgenden Befehle aus:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Wo

  • 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
  • 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-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-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 über die Google Cloud Console oder die Befehlszeile von 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

Wo

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • 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.

Images 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.
  • Bei Remote-Repositories wird die im Cache gespeicherte Kopie des Images entfernt. Das Bild bleibt von der Upstream-Quelle verfügbar. Wenn das Remote-Repository eine neue Anfrage für dasselbe Image erhält, wird es noch einmal vom Repository heruntergeladen und im Cache gespeichert.

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]

Wo

  • LOCATION ist der regionale oder multiregionale Speicherort für das Repository.
  • 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.