Containerkonzepte

In diesem Dokument werden die wichtigsten Konzepte von Containern vorgestellt. Dazu gehören: Registrys, Repositories und Artefakte. Einige grundlegende Informationen dazu, wie diese gelten die Konzepte für Artifact Registry und Container Registry ist ebenfalls enthalten.

Registries

Eine Registry speichert und verteilt Container-Images und Artefakte, in Repositories. Eine Registry kann entweder ein einzelnes Repository enthalten oder mehrere Repositories und können öffentlich oder privat sein.

Registry-Dienste wie Docker Hub und Artifact Registry Optionen zum Erstellen öffentlicher oder privater Repositories. Beim Abrufen öffentlicher Images ist es wichtig, die möglichen Sicherheitsbedenken zu verstehen. Weitere Informationen zu Abhängigkeitsmanagement. Monitoring und Reduzierung Ihres Abhängigkeitsbedarfs.

Registries sind in Repositories organisiert, in denen einzelne Container gespeichert werden Bilder. Mit Artifact Registry können Sie mehrere Repositories in einem und eine bestimmte Region oder Multiregion mit jedem Repository. Ähnliche Repositories können nach Labels gruppiert werden.

Repositories

Bilder und Artefakte mit demselben Namen, aber unterschiedlichen Tags sind in Repositories. Wenn beim Hochladen eines Images an ein Repository kein Tag angegeben ist, das Image mit dem Tag latest getaggt ist. Wenn ein anderes Image ohne Wenn Sie ein Tag angeben, wird das Tag latest vom ursprünglichen Image in ein neueres Image verschoben. Bild, sodass das erste Bild ohne Tag bleibt. Wir empfehlen, Releases mit einem Tag mit Ausnahme von latest.

Der Begriff Repository wird nicht immer einheitlich verwendet. in Artifact Registry ist es sinnvoller, Teile des Bildpfads zu verwenden, um das Projekt zu identifizieren, <ph type="x-smartling-placeholder"></ph> Region oder Multiregion . und Name des Images sowie Tag oder Manifest-Digest um die richtige Version zu ermitteln.

Beispiel:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 ist der Speicherort des Repositorys.
  • docker.pkg.dev ist der Hostname für Docker-Repositories.
  • PROJECT ist der Namespace, der von Ihrer Google Cloud-Projekt-ID erstellt wurde.
  • quickstart-docker-repo ist der Namespace unter Ihrem Projekt, in dem Sie speichern. Bilder. In Artifact Registry wird dieser Teil des Pfads als zu erstellen.
  • quickstart-image ist das Repository für alle Versionen von quickstart-image und wird oft als Bild bezeichnet.
  • tag1 ist das Tag, das die Version des Images angibt.

Images

Sowohl Artefakte als auch Images können in Artifact Registry gespeichert werden. Eine Das Artefakt kann ein beliebiges Artefakt sein: eine Textdatei, ein Docker-Image oder ein Helm-Diagramm, während ein Image bezieht sich in der Regel auf ein Container-Image. Container-Images sind Pakete von die alle Elemente enthält, die in jeder Umgebung ausgeführt werden können. Gelesen Was sind Container?

Bilder werden per Push bzw. in Repositories hochgeladen und per Pull oder Download bereitgestellt. aus Repositories. Damit das richtige Image und die richtige Version angegeben werden können, muss die eindeutige Registry und Artefakt müssen angegeben werden.

Beispiel:

docker pull us-west1-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

  • us-west1-docker.pkg.dev ist die Registry
  • /google-samples/containers/gke/ sind der Namespace und die untergeordneten Namespaces. In Artifact Registry google-samples ist das Google Cloud-Projekt und containers wird als Artifact Registry-Repository bezeichnet
  • hello-app ist der Name des Artefakts
  • :1.0 ist das Tag, das die Version des abzurufenden Artefakts angibt

Ebenen

In Repositories gespeicherte Container-Images werden inkrementell mithilfe von Layers Unterschiedliche Bilder können einige der gleichen Ebenen verwenden. Ebenen sind definiert je nach Bildtyp unterschiedlich, z. B. kann jede Anweisung in einem Dockerfile entspricht einer Schicht im Docker-Image. Innerhalb einer Registry Bilder mit gemeinsamen Schichten teilen diese Schichten, was die Speichereffizienz erhöht. Aus Sicherheitsgründen werden Ebenen nicht für verschiedene Registrys freigegeben.

Wenn Sie ein Container-Image löschen, werden die Ebenen nicht sofort gelöscht. Ebenen die von keinem Image in der Registry referenziert werden, werden täglich gelöscht.

Tags

Nutzer fügen Tags hinzu, wenn sie ein Image per Push oder Pull in ein Repository übertragen, um anzugeben, welche Version eines Bildes. Ein Bild kann ein oder mehrere Tags oder auch keine Tags haben. Wenn Sie ein Image zweimal mit demselben Tag hochladen, wird das Tag aus dem auf das erste Bild verschoben und zum zweiten verschoben. Das erste Bild bleibt ohne Tag. Die Image ohne Tags ist weiterhin über seine Manifest-Digests zugänglich.

Das latest-Tag ist ein spezielles Tag, das angehängt wird, wenn Bilder ohne Tag gesendet werden.

Beispiel:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

überträgt das Image an hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

ruft das Image hello-app:latest ab.

Wenn ein Image an ein Repository mit einem Tag gesendet wird, wird das latest-Tag nicht hinzugefügt. Daher ist es möglich, dasslatest latest-Bild hinter den neuesten Änderungen liegen. Unsere Empfehlung für Releases mit anderen Tags als latest.

Manifeste

Mit Image-Manifesten werden die Ebenen in jedem Bild eindeutig identifiziert und angegeben. Manifeste werden durch eindeutige SHA-256-Hashes identifiziert, die als Manifest-Digests bezeichnet werden. Manifest-Digests sind zuverlässiger und sicherer als Tags, Versionen desselben Bildes werden möglicherweise an dasselbe Tag gesendet, sodass einige Bilder ohne Tags, während jedes Image durch seinen Manifest-Digest eindeutig spezifiziert wird.

Wenn Sie Bilder mit Tools scannen oder analysieren, erhalten Sie gültig für das gescannte Image. Damit Sie das Image bereitstellen, können Sie sich nicht auf das Tag verlassen, da das von dem Tag ändern können.

Weitere Informationen zu spezifischen Tagging und Manifesten in Artifact Registry Weitere Informationen finden Sie unter Images verwalten und Container-Images verwenden.

Nächste Schritte