Wenn Sie Container Container-Images derzeit zum Verwalten Ihrer Container-Images verwenden, erfahren Sie auf dieser Seite, wie Sie ein standardmäßiges Artifact Registry-Repository einrichten und wie sich die Verwendung von Repositories von der Container Registry unterscheidet.
Diese Anleitung richtet sich hauptsächlich an Repository-Administratoren. Informationen dazu, wie sich Images erstellen, übertragen, abrufen und bereitstellen lassen, finden Sie unter den folgenden Informationen:
Hinweis
Aktivieren Sie die Artifact Registry API über die Google Cloud Console oder mit dem folgenden Befehl:
gcloud services enable artifactregistry.googleapis.com
Installieren Sie die gcloud CLI, wenn sie nicht bereits installiert ist. Führen Sie für eine vorhandene Installation den folgenden Befehl aus, um Komponenten auf die neueste Version zu aktualisieren:
gcloud components update
Informieren Sie sich über die Preise für Artifact Registry, bevor Sie mit der Umstellung beginnen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Google Cloud-Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Einrichten von gcr.io-Repositories benötigen:
-
So erstellen Sie Artifact Registry-Repositories und gewähren Zugriff auf einzelne Repositories:
Artifact Registry-Administrator (
roles/artifactregistry.admin
) -
So rufen Sie die vorhandene Container Registry-Konfiguration auf, die auf Cloud Storage-Speicher-Buckets angewendet wurde:
Storage-Administrator (
roles/storage.admin
) -
So gewähren Sie den Repository-Zugriff auf Projektebene:
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) oder eine Rolle mit den entsprechenden Berechtigungen wie Ordneradministrator (roles/resourcemanager.folderAdmin
) oder Organisationsadministrator (roles/resourcemanager.organizationAdmin
)
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.
Überblick
Standard-Repositories sind normale Artifact Registry-Repositories, die alle Features unterstützen.
Der Einfachheit halber wird bei den Anleitungen auf dieser Seite davon ausgegangen, dass sich sowohl Container Registry als auch Artifact Registry im selben Google Cloud-Projekt befinden. Während der Umstellung auf Artifact Registry können Sie weiterhin beide Dienste verwenden, sodass Sie die Einrichtungsschritte schrittweise ausführen und Ihre Automatisierung aktualisieren können. Bei Bedarf können Sie Artifact Registry in einem separaten Projekt einrichten und dieselben Schritte ausführen.
Artifact Registry bietet auch gcr.io Repositories.
Diese Repositories können gcr.io
-Traffic von Ihren vorhandenen Registries an die entsprechenden Artifact Registry-Repositories weiterleiten. Sie bieten einige Abwärtskompatibilität mit Container Registry, haben aber auch einige Einschränkungen für Funktionen. Wenn Sie jedoch viele Tools, Skripts oder Code mit gcr.io
-Referenzen haben, ist möglicherweise ein taktischerer Ansatz für die Umstellung auf Artifact Registry erforderlich. In der Umstellungsdokumentation zu Repositories mit gcr.io-Domainunterstützung können Sie fundierte Entscheidungen treffen.
Umstellungsschritte
In diesem Leitfaden erfahren Sie, wie Sie die folgenden Schritte ausführen:
- Erstellen Sie ein Docker-Repository für Ihre Container. Sie müssen ein Repository erstellen, bevor Sie Images per Push übertragen können.
- Gewähren Sie Berechtigungen für das Repository.
- Konfigurieren Sie die Authentifizierung, damit Sie eine Verbindung zu Ihrem neuen Repository herstellen können.
- Kopieren Sie bei Bedarf Images aus Container Registry, die Sie in Ihrem neuen Repository verwenden möchten.
- Erteilen Sie einen Push- und Pull-Befehl für Container
- Stellen Sie Images in einer Laufzeitumgebung bereit
- Konfigurieren Sie zusätzliche Features.
- Bereinigen Sie Images in Container Registry, wenn die Umstellung abgeschlossen ist.
Repositories erstellen
Container Registry erstellt automatisch einen Storage-Bucket in mehreren Regionen, wenn Sie vorher kein Image hochgeladen haben.
In Artifact Registry müssen Sie ein Repository erstellen, bevor Sie Images hochladen können. Beim Erstellen eines Repositorys müssen Sie Folgendes angeben:
- Das Format des Repositorys. Artifact Registry speichert Container in Docker-Repositories.
Ein regionaler oder multiregionaler Standort für das Repository.
Berücksichtigen Sie bei der Wahl eines Speicherorts für Ihre Artifact Registry-Repositories die Nähe der Repositories zu Ihrer anderen Infrastruktur und Ihren Nutzern. Wenn Sie Images von Container Registry nach Artifact-Registry kopieren möchten, können sich Unterschiede im Speicherort auf die Kosten für das Kopieren auswirken.
Einen Cloud Key Management Service-Schlüssel, wenn Sie für die Verschlüsselung vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden.
In Container Registry konfigurieren Sie den Container Registry-Storage-Bucket für die Verwendung von CMEK. In Artifact Registry konfigurieren Sie Repositories so, dass CMEK beim Erstellen verwendet werden. Weitere Informationen zur Verwendung von CMEK mit Artifact Registry finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel aktivieren.
Container Registry hostet Container in der Domain gcr.io
.
Artifact Registry hostet Container in der Domain pkg.dev
.
Informationen zum Erstellen von Repositories, einschließlich Repositories, die CMEK für die Verschlüsselung verwenden, finden Sie unter Repositories erstellen.
Berechtigungen erteilen
Container Registry verwendet Cloud Storage-Rollen, um den Zugriff zu steuern. Artifact Registry hat seine eigenen IAM-Rollen. Diese Rollen unterscheiden die Lese-, Schreib- und Repository-Verwaltungsrollen klarer als die Container Registry.
Mit dem Rollenzuordnungstool können Sie vorhandene Berechtigungen für Storage-Buckets schnell den vorgeschlagenen Artifact Registry-Rollen zuordnen.
Alternativ haben Sie die Möglichkeit, eine Liste der Hauptkonten mit Zugriff auf Storage-Buckets über die Google Cloud Console anzusehen.
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
Klicken Sie auf den Storage-Bucket für den Registry-Host, den Sie aufrufen möchten. In den Bucket-Namen ist
PROJECT-ID
Ihre Google Cloud-Projekt-ID.- gcr.io:
artifacts.PROJECT-ID.appspot.com
- Asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
- gcr.io:
Klicken Sie auf den Tab Berechtigungen.
Klicken Sie auf dem Tab „Berechtigungen“ auf den Untertab Nach Rolle ansehen.
Maximieren Sie eine Rolle, um die Hauptkonten mit dieser Rolle anzusehen.
Die Liste enthält IAM-Rollen, die direkt für den Bucket gewährt wurden, und Rollen, die vom übergeordneten Projekt übernommen wurden. Je nach Rolle können Sie die am besten geeignete Artifact Registry-Rolle auswählen, die gewährt werden soll.
- Cloud Storage und einfache Rollen
Nutzern und Dienstkonten, die derzeit auf Container Registry zugreifen, Zugriff auf Artifact Registry-Repositories gewähren. Für Cloud Storage-Rollen, die vom übergeordneten Projekt übernommen wurden, sollten Sie prüfen, ob das Hauptkonto derzeit Container Registry verwendet. Einige Hauptkonten greifen möglicherweise nur auf andere Cloud Storage-Buckets zu, die nichts mit Container Registry zu tun haben.
Die einfachen Rollen „Inhaber“, „Bearbeiter“ und „Betrachter“, die es vor IAM gab, haben eingeschränkten Zugriff auf Storage-Buckets. Sie gewähren an sich nicht den gesamten Zugriff auf Cloud Storage-Ressourcen, den ihr Name impliziert, und bieten ihnen zusätzliche Berechtigungen für andere Google Cloud-Dienste. Prüfen Sie, welche Nutzer und Dienstkonten Zugriff auf Artifact Registry benötigen. Verwenden Sie die Tabelle Rollenzuordnung, um Ihnen die richtigen Rollen zuzuweisen, wenn der Artifact Registry-Zugriff angemessen ist.
In der folgenden Tabelle werden Artifact Registry-Rollen basierend auf den Berechtigungen zugeordnet, die von vordefinierten Cloud Storage-Rollen für den Container Registry-Zugriff gewährt werden. Artifact Registry-Rollen bieten eine zusätzliche Trennung von Berechtigungen, die in den vordefinierten Cloud Storage-Rollen nicht verfügbar sind.
Erforderlicher Zugriff Aktuelle Rolle Artifact Registry-Rolle Rolle zuweisen Nur Images abrufen (schreibgeschützt) Storage-Objekt-Betrachter
(roles/storage.objectViewer
)Artifact Registry-Leser
(roles/artifactregistry.reader)
Artifact Registry-Repository oder Google Cloud-Projekt Images übertragen und abrufen (Lesen und Schreiben) Autor von Storage-Legacy-Buckets
(roles/storage.legacyBucketWriter
)Artifact Registry-Autor
(roles/artifactregistry.writer)
Artifact Registry-Repository oder Google Cloud-Projekt Images übertragen, abrufen und löschen Autor von Storage-Legacy-Buckets
(roles/storage.legacyBucketWriter
)Artifact Registry-Repository-Administrator
(roles/artifactregistry.repoAdmin)
Artifact Registry-Repository oder Google Cloud-Projekt Repositories erstellen, verwalten und löschen Speicheradministrator
(roles/storage.admin
)Artifact Registry-Administrator
(roles/artifactregistry.Admin)
Google Cloud-Projekt - Vom Projekt übernommene Dienst-Agent-Rollen
Standarddienstkonten für Google Cloud-Dienste haben eigene Rollen auf Projektebene. Der Dienst-Agent für Cloud Run hat beispielsweise die Rolle „Cloud Run-Dienst-Agent“.
In den meisten Fällen enthalten diese Dienst-Agent-Rollen entsprechende Standardberechtigungen für Container Registry und Artifact Registry. Sie müssen keine weiteren Änderungen vornehmen, wenn Sie Artifact Registry im selben Projekt wie Ihr vorhandener Container Registry-Dienst ausführen.
Weitere Informationen zu den Berechtigungen in Dienst-Agent-Rollen finden Sie in der Referenz zu Dienst-Agent-Rollen.
- Benutzerdefinierte Rollen
Anhand der Tabelle Rollenzuordnung können Sie entscheiden, welche Rolle Nutzern oder Dienstkonten basierend auf der erforderlichen Zugriffsebene gewährt werden soll.
Eine Anleitung zum Zuweisen von Artifact Registry-Rollen finden Sie unter Rollen und Berechtigungen konfigurieren.
Bei Repository authentifizieren
Artifact Registry unterstützt dieselben Authentifizierungsmethoden wie Container Registry.
Wenn Sie Docker Credential Helper verwenden:
- Zur Interaktion mit Artifact Registry-Repositories benötigen Sie Version 2.0 oder höher. Die eigenständige Version ist in GitHub verfügbar.
- Konfigurieren Sie den Credential Helper mit den Speicherorten von Artifact Registry, die Sie verwenden möchten. Standardmäßig konfiguriert Credential Helper nur den Zugriff auf Container Registry-Hosts.
Weitere Informationen zum Einrichten der Authentifizierung finden Sie unter Authentifizierung für Docker einrichten.
Container aus Container Registry kopieren
Sollten sich Container in Container Registry befinden, die Sie weiterhin in Artifact Registry verwenden möchten, haben Sie mehrere Möglichkeiten zum Kopieren. Eine ausführliche Anleitung finden Sie unter Images aus Container Registry kopieren.
Images übertragen und abrufen
Die Docker-Befehle, die Sie zum Taggen, Übertragen und Abrufen von Images in Artifact Registry verwenden, ähneln denen, die Sie in Container Registry verwenden. Es gibt zwei Hauptunterschiede:
- Der Hostname für die Artifact Registry-Docker-Repositories enthält ein Standortpräfix, gefolgt von
-docker.pkg.dev
. Beispiele sindaustralia-southeast1-docker.pkg.dev
,europe-north1-docker.pkg.dev
undeurope-docker.pkg.dev
. - Da Artifact Registry mehrere Docker-Repositories in einem einzelnen Projekt unterstützt, müssen Sie den Repository-Namen in Befehlen angeben.
Mit diesem Befehl wird z. B. in Container Registry das Image my-image
in die Registry eu.gcr.io
des Projekts my-project
verschoben.
docker push eu.gcr.io/my-project/my-image
In Artifact Registry verschiebt dieser Befehl das Image my-image
in das regionale Repository europe-north1-docker.pkg.dev
im Repository my-repo
und im Projekt my-project
.
docker push europe-north1-docker.pkg.dev/my-project/my-repo/my-image
Weitere Informationen zum Hoch- und Herunterladen von Images in Artifact Registry finden Sie unter Images hoch- und herunterladen.
Images bereitstellen
Dienstkonten für gängige Google Cloud-Integrationen werden mit standardmäßigen Berechtigungen für Repositories im selben Projekt konfiguriert.
Das Erstellen von Images und das Übertragen in ein Repository mit Cloud Build funktioniert im Allgemeinen genauso wie bei Container Registry. Der Hauptunterschied in Artifact Registry besteht darin, dass ein Ziel-Repository vorhanden sein muss, bevor Sie Images per Push übertragen, einschließlich des ersten Images, das Sie übertragen.
Erstellen Sie die benötigten Repositories, bevor Sie Befehle zum Übertragen von Images ausführen, einschließlich des Docker-Befehls docker push
und des Cloud Build-Befehls gcloud builds submit
.
Cloud Build-Builder werden weiterhin auf gcr.io
gehostet. Weitere Informationen finden Sie unter In Cloud Build einbinden.
Sonstige Features
In diesem Abschnitt wird die Konfiguration anderer Features beschrieben, die Sie in Container Registry eingerichtet haben.
Artefaktanalyse
Artefaktanalyse unterstützt sowohl Container Registry als auch Artifact Registry. Die Artifact Analysis-Dokumentation enthält beide Produkte.
- Beide Produkte verwenden dieselben Artifact Analysis APIs. Wenn Sie Artifact Analysis APIs in Container Registry oder Artifact Registry aktivieren, werden die APIs für beide Produkte aktiviert.
- Beide Produkte verwenden dieselben Pub/Sub-Themen für Artifact Analysis-Benachrichtigungen.
- Sie können weiterhin die Befehle gcloud container images verwenden, um Hinweise und Vorkommnisse aufzulisten, die mit
gcr.io
-Image-Pfaden verknüpft sind.
Container Registry | Artifact Registry |
---|---|
Scans nach Sicherheitslücken in Betriebssystem und Sprachpaketen mit On-Demand-Scans in Images mit einem unterstützten Betriebssystem Beim automatischen Scan werden nur Informationen zu Sicherheitslücken des Betriebssystems zurückgegeben.
Weitere Informationen zu Scantypen
|
Scans auf Sicherheitslücken in Betriebssystem und Sprache werden sowohl bei Bedarf als auch automatisch gescannt.
Weitere Informationen zu Scantypen
|
Pub/Sub-Benachrichtigungen
Artifact Registry veröffentlicht Änderungen an demselben gcr
-Thema wie Container Registry. Wenn Sie Pub/Sub bereits mit Container Registry im selben Projekt wie Artifact Registry verwenden, ist keine zusätzliche Konfiguration erforderlich.
Wenn Sie Artifact Registry in einem separaten Projekt einrichten, ist das Thema gcr
möglicherweise nicht vorhanden. Anleitungen zur Einrichtung finden Sie unter Pub/Sub-Benachrichtigungen konfigurieren.
Dienstperimeter
Mit VPC Service Controls können Sie Sicherheitsperimeter für die Ressourcen Ihrer von Google verwalteten Dienste konfigurieren und die Übertragung von Daten in und aus dem Perimeter steuern.
Eine Anleitung finden Sie unter Repositories in einem Dienstperimeter sichern.
Container Registry-Images bereinigen
Wenn Sie die Nutzung von Container Registry beenden möchten, löschen Sie die verbleibenden Images. Löschen Sie dazu die Storage-Buckets für Container Registry.
So löschen Sie jeden Container Registry-Speicher-Bucket:
Console
- Rufen Sie in der Google Cloud Console die Seite „Cloud Storage“ auf.
Wählen Sie den zu löschenden Storage-Bucket aus. In den Bucket-Namen ist
PROJECT-ID
Ihre Google Cloud-Projekt-ID.- gcr.io:
artifacts.PROJECT-ID.appspot.com
- Asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
- gcr.io:
Klicken Sie auf Löschen. Daraufhin wird ein Bestätigungsdialogfeld angezeigt.
Geben Sie den Bucket-Namen ein und klicken Sie auf Löschen, um den Löschvorgang zu bestätigen.
gsutil
Wenn Sie Hunderttausende oder mehr Bilder in einem Bucket im Bulk löschen möchten, sollten Sie gsutil nicht verwenden, da der Löschvorgang sehr lange dauert. Verwenden Sie stattdessen die Google Cloud Console, um den Vorgang auszuführen.
Verwenden Sie zum Löschen eines Buckets den Befehl gsutil rm
mit dem Flag -r
.
gsutil rm -r gs://BUCKET-NAME
Ersetzen Sie BUCKET-NAME
durch den Storage-Bucket-Namen des Container Registry. In den Bucket-Namen ist PROJECT-ID
Ihre Google Cloud-Projekt-ID.
- gcr.io:
artifacts.PROJECT-ID.appspot.com
- Asia.gcr.io:
asia.artifacts.PROJECT-ID.appspot.com
- eu.gcr.io:
eu.artifacts.PROJECT-ID.appspot.com
- us.gcr.io:
us.artifacts.PROJECT-ID.appspot.com
Die Antwort sieht in etwa so aus:
Removing gs://artifacts.my-project.appspot.com/...
Wenn andere Google Cloud-Dienste im selben Google Cloud-Projekt ausgeführt werden, lassen Sie die Container Registry API aktiviert. Wenn Sie versuchen, die Container Registry API zu deaktivieren. Container Registry zeigt eine Warnung an, wenn andere Dienste mit einer konfigurierten Abhängigkeit im Projekt aktiviert sind. Wenn Sie die Container Registry API deaktivieren, werden automatisch alle Dienste im selben Projekt mit einer konfigurierten Abhängigkeit deaktiviert, auch wenn Sie Container Registry derzeit nicht mit diesen Diensten verwenden.
Nächste Schritte
- Docker-Kurzanleitung ausführen