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 Bildern benötigen:
-
Bilder, Dateien in Bildern und Tags ansehen:
Artifact Registry-Leser (
roles/artifactregistry.reader
) -
Bilder taggen oder Tags mit der Artifact Registry bearbeiten:
Artifact Registry Writer (
roles/artifactregistry.writer
) -
Bilder löschen oder Tags entfernen:
Repository-Administrator für Artifact Registry (
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 der 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 Bilder in einem Repository auf:
Öffnen Sie in der Cloud Console die Seite Repositories.
Klicken Sie auf das Repository mit dem Container-Image.
Klicken Sie auf ein Bild, um seine Versionen aufzurufen.
gcloud
So listen Sie alle Images im Standardprojekt, im Standard-Repository und am Standard-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-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 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.
Bei allen folgenden Befehlen können Sie eine 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, im Standard-Repository und am Standard-Speicherort 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 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
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 des Repositories.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 ImagesVERSION
: den Image-Digest, ein String, der mitsha256:
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
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 Bild in einem Repository:
Öffnen Sie in der 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
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
Öffnen Sie in der 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:
-
LOCATION
ist der regionale oder multiregionale 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 Bild ist weiterhin über die Upstream-Quelle verfügbar. Wenn das Remote-Repository eine neue Anfrage für dasselbe Bild 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 gcr-cleaner
-Tool 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 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 Delete.
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 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 SHA-256-Hashwert der 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, die in einem Image gespeichert sind, ohne Docker-Befehle zu verwenden. Das kann nützlich sein, um Manifestdateien schnell zu prüfen.