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
Dabei gilt:
LOCATION ist der regionale oder multiregionale Standort des Repositorys.
PROJECT ist Ihre Projekt-ID der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (`:`) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte 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 Standort des Repositorys.
- PROJECT ist Ihre Projekt-ID der Google Cloud Console. 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 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 die zugehörigen 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-Tag
latest
. 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 Images können unterschiedliche Versionen haben. Um eine bestimmte Version eines Images zu identifizieren, können Sie den Image-Digest oder das Image-Tag angeben.
- Benachrichtigung
- Ein Image-Digest ist ein automatisch generierter Hash des Image-Index oder 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 Image-Inhalts.
- Tag
Ein Bild-Tag ist ein Label und oft ein für Menschen lesbarer String wie
v1.1
oderdevelopment
. Ein Tag kann nur auf eine Version eines Images verweisen. In Artifact Registry können Sie ein Docker-Repository so konfigurieren, dass änderbare Image-Tags zugelassen oder unveränderliche Image-Tags erzwungen werden.Veränderbar: Ein Tag verweist nur auf eine Version eines Images, der spezifische Digest, auf den es verweist, kann sich jedoch ändern.
Ein gängiger Ansatz besteht darin, Images bei der Erstellung mit einer Versions-ID wie
v1.1
zu taggen. Wenn der Build mehrere Versionen des Images mit demselbenv1.1
-Tag in die Registry überträgt, verweist das Tag auf den Digest der letzten Version, die in die Registry übertragen wurde. Veränderliche Image-Tags bieten zwar eine bequeme Möglichkeit, Versionen zu beschriften, können aber auch von böswilligen Akteuren manipuliert werden, um ein Tag mit einer schädlichen Version eines Images zu verknüpfen.Unveränderlich: Im Repository verweist ein Tag immer auf denselben Image-Digest. Wenn ein Artifact Registry-Repository für unveränderliche Image-Tags konfiguriert ist, sind die folgenden Aktionen nicht zulässig:
- Ein getaggtes Bild löschen. Das Löschen von Images ohne Tags ist weiterhin zulässig.
- Tag aus einem Bild entfernen
- Übertragen Sie ein Image mit einem Tag, das bereits von einer anderen Image-Version im Repository verwendet wird, per Push.
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
Hängen Sie :staging
an den Image-Namen an, um das Image mit dem Tag zu identifizieren:
us-west1-docker.pkg.dev/my-project/my-repo/test:staging
Hängen Sie @
an den Image-Namen an, gefolgt vom Digest, um es mit dem Digest zu identifizieren:
us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
Wenn die Projekt-ID einen Doppelpunkt (`:`) 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 die Version des Images, um Metadaten anzuzeigen, einschließlich des Image-Digest.
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
Stellen Sie dem vollständigen Namen https://
voran, um in der Google Cloud Console auf ein Repository oder Artefakt in einem Repository zuzugreifen.
Wenn Sie beispielsweise das Repository us-west1-maven.pkg.dev/my-project/my-repo
ansehen möchten, verwenden Sie die folgende URL:
https://us-west1-maven.pkg.dev/my-project/my-repo
Verwenden Sie die folgende URL, um das Bild us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
anzusehen:
https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image
Jeder authentifizierte Nutzer, der die Berechtigung zum Zugriff auf das Repository hat, kann diese Links verwenden.