Artifact Registry verwendet eine Namenskonvention, um Repositories und Images zu identifizieren, wenn Sie die API-, gcloud
- und docker
-Befehle für die Interaktion mit Repositories verwenden.
Docker-Repositories
Der vollständige Name für ein Docker-Repository hat folgendes Format:
LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY
Wobei:
LOCATION
ist der regionale oder multiregionale Speicherort für das Repository.PROJECT
ist die Projekt-ID Ihrer Google Cloud -Console. Wenn die Projekt-ID einen Doppelpunkt (:
) enthält, finden Sie weitere Informationen unter Domain-übergreifende Projekte.REPOSITORY
ist der Name des Repositorys.
Angenommen, Sie haben ein Image mit folgenden Merkmalen:
- Speicherort des Repositorys:
us-west1
- Repository-Format:
docker
- Repository-Name:
my-repo
- Projekt-ID:
my-project
Das Repository wird so angegeben:
us-west1-docker.pkg.dev/my-project/my-repo
Container-Image-Namen
Der vollständige Name für ein Container-Image hat eines der folgenden Formate:
LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
oder
LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG
oder
LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST
Dabei gilt:
LOCATION
ist der regionale oder multiregionale Speicherort für das Repository.PROJECT
ist die Projekt-ID Ihrer Google Cloud -Console. 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 Image-Version, die Sie herunterladen möchten.IMAGE-DIGEST
ist der sha256-Hash-Wert des Image-Inhalts. Klicken Sie in der Google Cloud -Console auf das jeweilige Image, um dessen Metadaten aufzurufen. Der Digest wird unter Image-Digest aufgeführt. Wenn Sie weder ein Tag noch einen Digest angeben, sucht Artifact Registry nach dem Image mit dem Standard-Taglatest
. Informationen zu Versionen finden Sie unter Container-Image-Versionen.
Angenommen, Sie haben ein Image mit folgenden Merkmalen:
- Speicherort des Repositorys:
us-west1
- Repository-Name:
my-repo
- Projekt-ID:
my-project
- Image-Name:
test
- Tag:
staging
Diese Version des mit Staging getaggten Images wird so angegeben:
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
Container-Image-Versionen
Ein Repository kann viele Container-Images enthalten und diese können unterschiedliche Versionen haben. Zum Identifizieren einer bestimmten Version des Images in einer Registry können Sie den Digest oder das Tag des Images angeben.
- Benachrichtigung
- Ein Image-Digest ist ein automatisch generierter Hash des Image-Index oder des Image-Manifests. Jeder Image-Digest ist eine eindeutige Kennung für eine Image-Version und kann nicht geändert werden. Der Digest ist der SHA256-Hashwert des Bildinhalts.
- Tag
Ein Bild-Tag ist ein Label und ist oft ein für Menschen lesbarer String wie
v1.1
oderdevelopment
. Ein Tag kann nur auf eine Version eines Bildes verweisen. In Artifact Registry können Sie ein Docker-Repository so konfigurieren, dass veränderliche Image-Tags zulässig sind oder unveränderliche Image-Tags erzwungen werden.Veränderlich: Ein Tag verweist nur auf eine Version eines Bildes, aber der entsprechende Digest kann sich ändern.
Eine gängige Methode besteht darin, Bilder zum Zeitpunkt des Builds mit einer Versions-ID wie
v1.1
zu taggen. Wenn beim Build mehrere Versionen des Images mit demselbenv1.1
-Tag in die Registry hochgeladen werden, verweist das Tag auf den Digest der letzten Version, die in die Registry hochgeladen wurde. Veränderbare Image-Tags sind zwar eine praktische Möglichkeit, Versionen zu kennzeichnen, können aber auch von böswilligen Akteuren manipuliert werden, um ein Tag mit einer schädlichen Version eines Bildes zu verknüpfen.Unveränderlich: Im Repository verweist ein Tag immer auf denselben Image-Digest. Wenn ein Artifact Registry-Repository für unveränderliche Bild-Tags konfiguriert ist, sind die folgenden Aktionen nicht zulässig:
- Ein getaggtes Bild löschen Das Löschen nicht getaggter Bilder ist weiterhin zulässig.
- Entfernen Sie ein Tag aus einem Bild.
- Pushen eines Bildes mit einem Tag, das bereits von einer anderen Version des Bildes im Repository verwendet wird.
Angenommen, Sie haben ein Image mit folgenden Merkmalen:
- Speicherort des Repositorys:
us-west1
- Repository-Name:
my-repo
- Projekt-ID:
my-project
- Image-Name:
test
- Tag:
staging
- Digest:
sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
Um das Bild mit dem Tag zu identifizieren, fügen Sie dem Bildnamen :staging
hinzu:
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
Um es mit dem Digest zu identifizieren, fügen Sie dem Image-Namen @
gefolgt vom Digest an:
us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
:
) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
In der Console werden die Image-Tags unter Images in der Spalte Tags angezeigt. Klicken Sie auf eine Image-Version, um die Metadaten anzusehen, einschließlich des Image-Digests.
Weitere Informationen zur Tagging finden Sie unter Images taggen.
Auf Domains beschränkte Projekte
Wenn Ihr Projekt auf Ihre Domain beschränkt ist, enthält die Projekt-ID den Namen der Domain, gefolgt von einem Doppelpunkt (:
). Aufgrund der Art und Weise, wie Docker Doppelpunkte behandelt, müssen Sie den Doppelpunkt durch einen Schrägstrich ersetzen, wenn Sie einen Image-Digest in Artifact Registry angeben. Identifizieren Sie Images in diesen Projekttypen im folgenden Format:
LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST
Das Projekt mit der ID example.com:my-project
könnte beispielsweise folgendes Image haben:
us-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name
Repository-Namen als URLs
Wenn Sie in der Google Cloud -Console auf ein Repository oder ein Artefakt in einem Repository zugreifen möchten, fügen Sie vor den vollständigen Namen https://
ein.
Wenn Sie beispielsweise das Repository us-west1-maven.pkg.dev/my-project/my-repo
aufrufen möchten, verwenden Sie die folgende URL:
https://us-west1-maven.pkg.dev/my-project/my-repo
Das Bild us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
ist unter der folgenden URL verfügbar:
https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
Diese Links können von jedem authentifizierten Nutzer verwendet werden, der Zugriffsrechte für das Repository hat.