Wenn Sie Container Registry zur Verwaltung Ihrer Container-Images verwenden, erfahren Sie auf dieser Seite, wie Sie ein pkg.dev
Artifact Registry-Repository einrichten und wie sich die Verwendung von Repositories von Container Registry unterscheidet.
Diese Anleitung richtet sich hauptsächlich an Repository-Administratoren. Weitere Informationen zu den Änderungen beim Erstellen, Hochladen, Herunterladen und Bereitstellen von Images finden Sie unter den folgenden Links:
- Änderungen bei der Erstellung und Bereitstellung in Google Cloud
- Änderungen beim Pushen und Pullen mit Docker
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, falls noch nicht geschehen. Führen Sie bei einer vorhandenen Installation den folgenden Befehl aus, um die Komponenten auf die neuesten Versionen 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 Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Einrichten von gcr.io-Repositories benötigen: Google Cloud
-
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-Storage-Buckets angewendet wird, und verwalten sie:
Storage-Administrator (
roles/storage.admin
) -
So gewähren Sie Repositoryzugriff auf Projektebene:
Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin
) oder eine Rolle mit entsprechenden Berechtigungen, z. B. Ordneradministrator (roles/resourcemanager.folderAdmin
) oder Organisationsadministrator (roles/resourcemanager.organizationAdmin
)
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.
Übersicht
pkg.dev
-Repositories sind reguläre Artifact Registry-Repositories, die alle Funktionen 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. Sie können während der Umstellung auf Artifact Registry weiterhin beide Dienste verwenden, sodass Sie die Einrichtungsschritte schrittweise vornehmen 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 eine gewisse Abwärtskompatibilität mit Container Registry, haben aber auch einige Funktionseinschränkungen. Wenn Sie jedoch viele Toolkonfigurationen, Scripts oder Code mit gcr.io
-Referenzen haben, ist für die Umstellung auf Artifact Registry möglicherweise ein taktischer Ansatz erforderlich. Lesen Sie die Dokumentation zur Umstellung auf Repositories mit Unterstützung von gcr.io-Domains, um eine fundierte Entscheidung zu treffen.
Umstellungsschritte
In dieser Anleitung 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.
- Bei Bedarf können Sie Images aus Container Registry kopieren, 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 die 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
In Container Registry wird der Zugriff über Cloud Storage-Rollen gesteuert. Artifact Registry hat eigene IAM-Rollen. Diese Rollen unterscheiden Lese-, Schreib- und Repository-Verwaltungsrollen deutlicher als Container Registry.
Mit dem Tool zur Rollenzuordnung können Sie vorhandene Berechtigungen, die für Speicher-Buckets gewährt wurden, schnell den vorgeschlagenen Rollen der Artifact Registry zuordnen.
Alternativ können Sie sich über die Google Cloud Console eine Liste der Hauptberechtigungen mit Zugriff auf Speicher-Buckets ansehen.
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
Klicken Sie auf den Speicher-Bucket für den Registry-Host, den Sie aufrufen möchten. In den Bucket-Namen steht
PROJECT-ID
für IhreGoogle 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 anzuzeigen.
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.
- Cloud Storage und grundlegende Rollen
Gewähren Sie Nutzern und Dienstkonten, die derzeit auf Container Registry zugreifen, Zugriff auf Artifact Registry-Repositories. Bei Cloud Storage-Rollen, die vom übergeordneten Projekt übernommen wurden, sollten Sie prüfen, ob das Prinzipal derzeit Container Registry verwendet. Einige Prinzipale greifen möglicherweise nur auf andere Cloud Storage-Buckets zu, die nichts mit der Container Registry zu tun haben.
Die einfachen Rollen „Inhaber“, „Bearbeiter“ und „Betrachter“, die es vor der Einführung von IAM gab, haben einen eingeschränkten Zugriff auf Speicher-Buckets. Sie gewähren nicht automatisch den gesamten Zugriff auf die Cloud Storage-Ressourcen, die an ihrem Namen abgelesen werden können, und bieten zusätzliche Berechtigungen für andere Google Cloud Dienste. Prüfen Sie, welche Nutzer und Dienstkonten Zugriff auf die Artifact Registry benötigen, und verwenden Sie die Tabelle Rollenzuordnung, um die richtigen Rollen zu gewähren, wenn der Zugriff auf die Artifact Registry erforderlich ist.
In der folgenden Tabelle werden Artifact Registry-Rollen basierend auf den Berechtigungen zugeordnet, die durch vordefinierte 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 ist.
Erforderlicher Zugriff Aktuelle Rolle Artifact Registry-Rolle Wo kann ich eine Rolle gewähren? Nur Bilder abrufen (schreibgeschützt) Storage-Objekt-Betrachter
(roles/storage.objectViewer
)Artifact Registry-Leser
(roles/artifactregistry.reader)
Artifact Registry-Repository oder Google Cloud -Projekt Bilder hoch- und herunterladen (Lesen und Schreiben) Autor alter Storage-Buckets
(roles/storage.legacyBucketWriter
)Artifact Registry-Writer
(roles/artifactregistry.writer)
Artifact Registry-Repository oder Google Cloud -Projekt Images hoch- und herunterladen und löschen Autor alter Storage-Buckets
(roles/storage.legacyBucketWriter
)Artifact Registry-Repository-Administrator
(roles/artifactregistry.repoAdmin)
Artifact Registry-Repository oder Google Cloud -Projekt Repositories erstellen, verwalten und löschen Storage Admin
(roles/storage.admin
)Artifact Registry-Administrator
(roles/artifactregistry.Admin)
Google Cloud -Projekt - Vom Projekt übernommene Rollen für Dienst-Agenten
Standarddienstkonten für Google Cloud -Dienste haben eigene Rollen, die auf Projektebene gewährt werden. 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 zusätzlichen Änderungen vornehmen, wenn Sie Artifact Registry im selben Projekt wie Ihren vorhandenen Container Registry-Dienst ausführen.
Weitere Informationen zu den Berechtigungen in den Rollen von Dienst-Agents finden Sie in der Referenz zu Dienst-Agent-Rollen.
- Benutzerdefinierte Rollen
Anhand der Tabelle Rollenzuordnung können Sie die Rolle festlegen, die Sie Nutzern oder Dienstkonten basierend auf der erforderlichen Zugriffsebene gewähren möchten.
Eine Anleitung zum Zuweisen von Artifact Registry-Rollen finden Sie unter Rollen und Berechtigungen konfigurieren.
Beim 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 hoch- und herunterladen
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 sind mit Standard-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.
Weitere Funktionen
In diesem Abschnitt wird die Konfiguration anderer Features beschrieben, die Sie in Container Registry eingerichtet haben.
Artefaktanalyse
Artifact Analysis unterstützt sowohl die Container Registry als auch die Artifact Registry. Die Dokumentation zu Artifact Analysis enthält jetzt beide Produkte.
- Beide Produkte verwenden dieselben Artefaktanalyse-APIs. Wenn Sie Artifact Analysis APIs in Container Registry oder Artifact Registry aktivieren, sind die APIs für beide Produkte aktiviert.
- Beide Produkte verwenden dieselben Pub/Sub-Themen für Benachrichtigungen zur Artefaktanalyse.
- Sie können weiterhin gcloud container images-Befehle verwenden, um Notizen und Vorkommen aufzulisten, die mit
gcr.io
-Imagepfaden verknüpft sind.
Container Registry | Artifact Registry |
---|---|
Scannet mit On-Demand-Scans in Images mit einem unterstützten Betriebssystem auf Sicherheitslücken in Betriebssystem- und Sprachpaketen. Beim automatischen Scannen werden nur Informationen zu Sicherheitslücken im Betriebssystem zurückgegeben.
Weitere Informationen zu den verschiedenen Arten von Scans
|
Es werden sowohl on-demand als auch automatisch Betriebssystem- und Sprachpakete auf Sicherheitslücken geprüft.
Weitere Informationen zu den verschiedenen Arten von Scans
|
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 Container Registry nicht mehr verwenden möchten, löschen Sie die verbleibenden Images, indem Sie die Speicher-Buckets für Container Registry löschen.
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 Storage-Bucket aus, den Sie löschen möchten. In den Bucket-Namen steht
PROJECT-ID
für 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. Es wird ein Bestätigungsdialogfeld angezeigt.
Geben Sie den Bucketnamen ein und klicken Sie auf Löschen, um den Löschvorgang zu bestätigen.
gcloud
Wenn Sie mehrere Hunderttausend Bilder in einem Bucket im Bulk löschen möchten, sollten Sie die gcloud CLI nicht verwenden, da der Löschvorgang sehr lange dauert. Führen Sie den Vorgang stattdessen über die Google Cloud Console aus. Weitere Informationen finden Sie unter Cloud Storage-Objekte im Bulk-Verfahren löschen.
Verwenden Sie den Befehl gcloud storage rm
mit dem Flag --recursive
, um einen Bucket zu löschen.
gcloud storage rm gs://BUCKET-NAME --recursive
Ersetzen Sie BUCKET-NAME
durch den Namen des Container Registry-Speicher-Buckets. In den Bucket-Namen steht PROJECT-ID
für IhreGoogle 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 CloudProjekt 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 alle Dienste im selben Projekt mit einer konfigurierten Abhängigkeit automatisch deaktiviert, auch wenn Sie Container Registry derzeit nicht mit diesen Diensten verwenden.
Nächste Schritte
- Docker-Kurzanleitung ausführen