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
- Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein neues Repository.
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen für das Repository haben.
- (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 Images benötigen:
-
Images, Dateien in Images und Tags ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader) -
Images taggen oder Tags mit Artifact Registry bearbeiten:
Artifact Registry-Writer (
roles/artifactregistry.writer) -
Images löschen oder Tags entfernen:
Artifact Registry-Repository-Administrator (
roles/artifactregistry.repoAdmin)
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 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:
Öffnen Sie in der Google Cloud console die Seite Repositories.
Klicken Sie auf das Repository mit dem Container-Image.
Klicken Sie auf ein Image, um seine Versionen aufzurufen.
gcloud
So listen Sie alle Images im Standardprojekt, im Standard-Repository und am Speicherort auf, 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 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-tagszeigt 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 des Image-Namens 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 zurückzugebenden Dateien festlegen, indem Sie dem Befehl das Flag --limit hinzufügen.
So listen Sie alle Dateien im Standardprojekt, im Standard-Repository und am Standard-Speicherort auf, wenn die Standardwerte konfiguriert sind:
gcloud artifacts files list
Um Dateien in einem bestimmten Projekt, Repository und an einem bestimmten Speicherort aufzulisten, führen Sie folgenden Befehl aus:
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
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--tag=TAG
Ersetzen Sie die folgenden Werte:
LOCATION: der regionale oder multiregionale Speicherort für das Repository.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 das Image gespeichert ist.PACKAGE: der Name des Images.VERSION: der Image-Digest, ein String, der mitsha256:beginnt.TAG: das Tag, das mit dem Container-Image verknüpft ist.
Beispiele
Angenommen, Sie haben folgende Image-Informationen:
- 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
sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356 aufgelistet.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
1.0-dev aufgelistet.
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:
Öffnen Sie in der Google Cloud console die Seite Repositories.
Klicken Sie auf das Image, um die Versionen des Images aufzurufen.
Wählen Sie die Image-Version aus, die getaggt werden soll.
Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (
) und dann auf Tags bearbeiten.Geben Sie neue Tags in das Feld ein und klicken Sie danach auf SPEICHERN.
gcloud
Um Images in einem Repository zu taggen, geben Sie die Image-Version mithilfe des Image-Digests oder des Tags an und dann das Tag an, das hinzugefügt werden soll. Führen Sie einen der folgenden Befehle aus:
gcloud artifacts docker tags add IMAGE-VERSION TAG
Wo
IMAGE-VERSIONist 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.TAGist 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, einschließlich auf Domains beschränkter Projekte, 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 die Google Cloud console oder die Befehlszeile verwenden, um ein Tag von einem Image in Artifact Registry zu entfernen.
Console
Öffnen Sie in der Google Cloud console die Seite Repositories.
Klicken Sie auf das Image, um die Versionen des Images aufzurufen.
Wählen Sie die Image-Version aus, dessen Tag entfernt werden soll.
Klicken Sie in der Zeile der ausgewählten Version auf Weitere Aktionen (
) und dann auf Tags bearbeiten.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
Ersetzen Sie Folgendes:
-
LOCATIONist der regionale oder multiregionale Speicherort für das Repository. PROJECTist Ihre Google Cloud Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.REPOSITORYist der Name des Repositorys, in dem das Image gespeichert ist.IMAGEist der Name des Images im Repository.TAGist 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 Images kann nicht rückgängig gemacht werden.
- Durch das Löschen von Images werden die referenzierten Ebenen nicht sofort gelöscht. Nicht referenzierte Ebenen werden täglich gelöscht.
- Bei Remote-Repositories wird die im Cache gespeicherte Kopie des Images entfernt. Das Image ist weiterhin über die Upstream-Quelle verfügbar. Wenn das Remote-Repository eine neue Anfrage für dasselbe Image erhält, wird es noch einmal 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 Tool gcr-cleaner ist kein offizielles Google-Produkt.
So löschen Sie Images aus der Google Cloud Console oder mit der gcloud CLI:
Console
Öffnen Sie in der Google Cloud console die Seite Repositories.
Klicken Sie auf den Image-Namen, um die Versionen des Images aufzurufen.
Wählen Sie die Versionen aus, die Sie löschen möchten.
Klicken Sie auf LÖSCHEN.
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-tagsangeben, damit die Image-Version ohne vorheriges Entfernen der Tags gelöscht wird. - IMAGE-DIGEST ist der sha256-Hashwert für die Version, die Sie löschen möchten. Wenn ein Tag mit dem Image-Digest verknüpft ist, müssen Sie
--delete-tagsangeben, damit die Image-Version ohne vorheriges Entfernen des Tags gelöscht wird. - Mit
--delete-tagswerden 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 die in einem Image gespeichert sind, ohne Docker-Befehle zu verwenden. Dies kann nützlich sein, um Manifestdateien schnell zu prüfen.