Container Registry-Konzepte

Informieren Sie sich über die wichtigsten Konzepte, die Sie vor der Verwendung von Container Registry verstehen müssen.

In diesem Thema werden die Schlüsselkonzepte beschrieben, die Sie bei der Verwendung von Oracle Cloud Infrastructure Registry (auch als Container Registry bezeichnet) verstehen müssen.

Images

Container Registry ist eine Registry, die Open Container Initiative-konform ist. Daher können Sie Artefakte speichern, die den Spezifikationen der Open Container Initiative entsprechen, wie Docker-Images, Manifestlisten (manchmal auch als Images mit mehreren Architekturen bezeichnet) und Helm-Diagramme. Bei den Anweisungen in dieser Dokumentation wird davon ausgegangen, dass Sie Docker-Containerimages mit der Docker-CLI speichern und abrufen. Docker-Containerimages werden häufig als Docker-Images oder einfach als Images bezeichnet.

Ein Docker-Image ist eine schreibgeschützte Vorlage mit Anweisungen zum Erstellen eines Docker-Containers. Ein Docker-Image enthält die Anwendung, die Docker als Container ausführen soll, zusammen mit allen Abhängigkeiten. Um ein Docker-Image zu erstellen, erstellen Sie zunächst eine Docker-Datei, um diese Anwendung zu beschreiben. Danach erstellen Sie das Docker-Image aus der Docker-Datei. Wenn Sie ein Docker-Image erstellt haben, speichern Sie es in einer Docker Registry, wie Container Registry.

In der Regel gruppieren Sie verschiedene Versionen desselben Docker-Images in einem benannten Repository in der Registry (z.B. in einem Repository mit dem Namen "project01/acme-web-app") und geben jeder Imageversion eine andere ID (z.B. "4.6.3"). Daher wird jedes Image in der Registry durch die Kombination seines Repository-Namens und seiner Versions-ID eindeutig identifiziert (z.B. "project01/acme-web-app:4.6.3", "project01/acme-web-app:4.6.4" usw.).

Repositorys

Ein Repository ist eine aussagekräftig benannte Sammlung zugehöriger Images, die aus Gründen der Benutzerfreundlichkeit in Container Registry gruppiert sind. In der Regel gruppieren Sie verschiedene Versionen desselben Quellimages in demselben Repository (z.B. in einem Repository mit dem Namen project01/acme-web-app) und geben jeder Imageversion eine andere ID (z.B. 4.6.3). Jedes Image in der Registry wird also durch die Kombination aus Repository-Name und Versions-ID eindeutig identifiziert (z.B. project01/acme-web-app:4.6.3, project01/acme-web-app:4.6.4 usw.).

Repositorys können privat oder öffentlich sein. Jeder Benutzer mit Internetzugang und Kenntnis der entsprechenden URL kann Images aus einem öffentlichen Repository in Container Registry abrufen.

Ein Repository ist in einem bestimmten Mandanten, einer bestimmten Region und einem bestimmten Compartment vorhanden. Wenn Sie auf den Mandanten verweisen, der Eigentümer eines Repositorys ist, geben Sie den Namespace des Mandanten an. Der Namespace des Mandanten ist eine automatisch generierte zufällige Zeichenfolge aus alphanumerischen Zeichen. Beispiel: Der Namespace des Mandanten acme-dev kann ansh81vru1zp lauten. Bei einigen älteren Mandanten kann die Namespace-Zeichenfolge mit dem Mandantennamen in Kleinbuchstaben identisch sein (Beispiel: acme-dev). Wenn Sie den Mandanten-Namespace des aktuellen Mandanten ermitteln möchten, rufen Sie das Menü Profil Symbol für Profilmenü auf, und wählen Sie Mandant aus.

Sie müssen zur Administratorengruppe des Mandanten gehören oder über die Berechtigung REPOSITORY_MANAGE verfügen, um:

  • ein neues öffentliches Repository zu erstellen
  • ein vorhandenes Repository in ein öffentliches Repository zu ändern
  • ein vorhandenes öffentliches Repository in ein privates Repository zu ändern

Wenn Sie ein Repository in ein privates Repository ändern, können Sie (zusammen mit Benutzern, die zur Administratorengruppe des Mandanten gehören) jeden beliebigen Vorgang für das Repository ausführen. Mit Identitäts-Policys können Sie weiteren Benutzern die Berechtigung erteilen, weitere Vorgänge für die von Ihnen erstellten Repositorys (sowohl öffentliche als auch private) auszuführen.

In der Regel erstellen Sie vor dem Push von Images ein leeres Repository in einem Compartment und geben dem Repository einen Namen (z.B. project01/acme-web-app). Wenn Sie zur Administratorengruppe des Mandanten gehören oder Ihnen die Berechtigung REPOSITORY_MANAGE erteilt wurden, können Sie auch angeben, ob das Repository privat oder öffentlich sein soll (siehe Policys zur Kontrolle des Repository-Zugriffs). Nachdem Sie das Repository erstellt haben, werden Images, die Sie anschließend in Container Registry übergeben und die den Repository-Namen enthalten, in dieses Repository übergeben.

Beispiel: Der Einfachheit halber möchten Sie möglicherweise mehrere Versionen eines Images im acme-dev-Mandanten in der Ashburn-Region in das Repository mit dem Namen project01/acme-web-app gruppieren. Zuerst erstellen Sie das Repository project01/acme-web-app. Anschließend fügen Sie den Namen des Repositorys beim Push des Images im Format <registry-domain>/<tenancy-namespace>/<repo-name>:<version> ein. Beispiel: ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:4.6.3.

Beachten Sie, dass das Erstellen eines leeren Repositorys vor dem Push eines Images mit ziemlicher Sicherheit Ihr normaler Workflow sein wird. Wenn Sie nur zur Verwaltung von Repositorys in Compartments und nicht im Root Compartment des Mandanten berechtigt sind, müssen Sie vor dem Push eines Images immer ein Repository erstellen. Wenn Sie jedoch in der ungewöhnlichen Position sind und hauptsächlich beabsichtigen, Images in das Root Compartment zu übertragen, ist das Erstellen eines leeren Repositorys im Voraus nicht unbedingt erforderlich. Weitere Informationen finden Sie unter Repository erstellen.

Terminologieübersicht

Wenn Sie mit Repositorys in Container Registry arbeiten, ist es hilfreich, die folgenden Begriffe und ihre Beziehung zueinander klar zu verstehen.

Repository-Pfad

Ein Repository-Pfad (in dieser Dokumentation auch als <repo-path> bezeichnet) ist der vollqualifizierte Pfad zu einem Repository in Container Registry. Ein Repository-Pfad hat das Format <registry-domain>/<tenancy-namespace>/<repo-name>.

Beispiel:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app
  • iad.ocir.io/ansh81vru1zp/project01/acme-web-app
  • us-phoenix-1.ocir.io/cbujx0t3wa3r/my-hello-app
Registry-Domain

Eine Container Registry-Registry-Domain enthält einen Container Registry-Regionsschlüssel oder eine Regions-ID. Eine Container Registry-Registrierungsdomain hat eines der folgenden Formate:

  • (empfohlen) ocir.<region-identifier>.oci.oraclecloud.com
  • <region-key>.ocir.io (nur OC1 Realms)
  • <region-identifier>.ocir.io (nur OC1 Realms)

Beispiel:

  • ocir.us-ashburn-1.oci.oraclecloud.com
  • iad.ocir.io/ansh81vru1zp
  • us-phoenix-1.ocir.io

Eine Liste der Regions-IDs und Regionsschlüssel finden Sie unter Verfügbarkeit nach Region

Regions-ID

Eine Regions-ID (in dieser Dokumentation auch als <region-identifier> bezeichnet) identifiziert die verwendete Container Registry-Region.

Beispiel:

  • us-ashburn-1
  • us-phoenix-1

Eine Liste der Regions-IDs finden Sie unter Verfügbarkeit nach Region

Regionsschlüssel

Ein Regionsschlüssel (in dieser Dokumentation auch als <region-key> bezeichnet) identifiziert die von Ihnen verwendete Container Registry-Region.

Beispiel:

  • iad
  • phx

Eine Liste der Regionsschlüssel finden Sie unter Verfügbarkeit nach Region.

Mandanten-Namespace

Ein Mandanten-Namespace (in dieser Dokumentation auch als <tenancy-namespace> bezeichnet) ist eine automatisch generierte, zufällige und unveränderbare Zeichenfolge aus alphanumerischen Zeichen. Beispiel: Der Namespace des Mandanten acme-dev kann ansh81vru1zp lauten.

Bei einigen älteren Mandanten kann die Namespace-Zeichenfolge mit dem Mandantennamen (vollständig in Kleinbuchstaben) identisch sein (Beispiel: acme-dev). Wenn Sie den Mandanten-Namespace des aktuellen Mandanten ermitteln möchten, rufen Sie das Menü Profil Symbol für Profilmenü auf, und wählen Sie Mandant aus. Der Mandanten-Namespace wird im Feld Object Storage-Namespace angezeigt.

Repository-Name

Ein Repository-Name (in dieser Dokumentation auch als <repo-name> bezeichnet) ist der Name eines Repositorys in Container Registry, aus dem Sie Images per Push übertragen und abrufen können. Repository-Namen können ein oder mehrere Schrägstriche enthalten und sind für alle Compartments im gesamten Mandanten eindeutig.

Beispiel:

  • project01/acme-web-app
  • project01/my-test-app
  • my-hello-app
  • project01/acme-web-app/component1
  • project01/acme-web-app/component2
  • project01/acme-web-app/component1/subcomponent1

Beachten Sie, dass ein Repository-Name zwar Schrägstriche enthalten kann, der Schrägstrich jedoch keine hierarchische Verzeichnisstruktur darstellt. Es handelt sich lediglich um ein Zeichen in einer Zeichenfolge. Zur Vereinfachung können Sie die Namen mehrerer verschiedener Repositorys mit derselben Zeichenfolge beginnen und dabei möglicherweise auf einen Schrägstrich (z.B. project01/) enden. Eine solche Zeichenfolge wird manchmal als "Repository-Namenspräfix" bezeichnet. Ein Repository mit dem Namen project01/acme-web-app muss jedoch keine Beziehung zu einem Repository mit dem Namen project01/my-test-app aufweisen. Die Verwendung desselben Repository-Namenspräfixes für einige Repositorys erleichtert die Organisation und Kontrolle des Zugriffs auf diese Repositorys in Container Registry, die viele andere Repositorys enthalten kann.

Registry-ID

Eine Registry-ID enthält eine Container Registry-Registry-Domain und einen Mandanten-Namespace im Format <registry-domain>/<tenancy-namespace>

Beispiel:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp
  • iad.ocir.io/ansh81vru1zp/project01
  • us-phoenix-1.ocir.io/cbujx0t3wa3r
Bildpfad

Ein Imagepfad ist der vollqualifizierte Pfad zu einem bestimmten Image in einer Registry. Er erweitert den Repository-Pfad, indem er die mit dem Image verknüpfte Versions-ID hinzufügt. Ein Imagepfad hat das Format <registry-domain>/<tenancy-namespace>/<repo-name>:<version>

Beispiel:

  • ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
  • iad.ocir.io/ansh81vru1zp/project01/acme-web-app:v2.0.test
  • us-phoenix-1.ocir.io/cbujx0t3wa3r/my-hello-app:latest
Versions-ID

Eine Versions-ID (in dieser Dokumentation auch als <version> bezeichnet) ist eine Zeichenfolge, die verwendet wird, um auf eine bestimmte Imageversion in einem bekannten Repository zu verweisen. Beispiel:

  • 4.6.3
  • 4.6.4
  • v2.0.test
Abbildname

Der Begriff "Bildname" wird manchmal als Kurzform verwendet, um auf ein bestimmtes Bild in einem bestimmten Repository zu verweisen. In diesem Kontext hat ein Bildname die folgende Struktur:

<repo-name>:<version>

Beispiel:

  • project01/acme-web-app:4.6.3
  • project01/acme-web-app:4.6.4
  • my-hello-app:latest