Containermetadaten verwalten

Auf dieser Seite wird beschrieben, wie Sie ein Container-Image containerisieren, in Artifact Registry hochladen und die Metadaten zu einem Container-Image verwalten, das in Artifact Registry als Anhang gespeichert ist.

Anhänge sind OCI-Artefakte und können nur in Repositories im Docker-Format gespeichert werden.

Hinweise

  1. Wenn Sie noch keins haben, erstellen Sie ein Standard-Repository im Docker-Format.
  2. Optional: Konfigurieren Sie die Standardeinstellungen für Google Cloud CLI-Befehle.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Anhängen benötigen:

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.

Oras einrichten (optional)

Zusätzlich zur gcloud CLI können Sie auch Oras verwenden, um Anhänge zu erstellen, aufzulisten und herunterzuladen.

  1. Installieren Sie Oras 1.2 oder höher. Führen Sie den Befehl oras version aus, um die Version zu prüfen.

  2. Konfigurieren Sie Oras für die Authentifizierung bei Artifact Registry.

Anhänge erstellen

Sie können einen Anhang mit der gcloud CLI oder Oras erstellen.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • ATTACHMENT: der voll qualifizierte Name des Anhangs. Beispiel: projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment. Alternativ können Sie nur die Anhangs-ID angeben und die Flags --location und --repository verwenden.
  • TARGET: Der vollständige Versionsname oder der Artifact Registry-URI des Artefakts, auf das sich der Anhang bezieht. Sie können entweder den Digest oder das Tag verwenden. Beispiel: us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1.
  • TYPE: das type-Attribut des Anhangs. Dies muss den OCI-Spezifikationen für das Attribut artifactType entsprechen.
  • ATTACHMENT_NAMESPACE: Eine anhängespezifische Variable, die die Datenquelle des Anhangs angibt. Beispiel: example.com.
  • FILES: eine durch Kommas getrennte Liste lokaler Dateien, die in den Anhang aufgenommen werden sollen.
    • Führen Sie folgenden Befehl aus:

      Linux, macOS oder Cloud Shell

      gcloud artifacts attachments create ATTACHMENT \
          --target=TARGET \
          --type=TYPE \
          --attachment-namespace=ATTACHMENT_NAMESPACE \
          --files=FILES

      Windows (PowerShell)

      gcloud artifacts attachments create ATTACHMENT `
          --target=TARGET `
          --type=TYPE `
          --attachment-namespace=ATTACHMENT_NAMESPACE `
          --files=FILES

      Windows (cmd.exe)

      gcloud artifacts attachments create ATTACHMENT ^
          --target=TARGET ^
          --type=TYPE ^
          --attachment-namespace=ATTACHMENT_NAMESPACE ^
          --files=FILES
      Weitere Informationen finden Sie im Hilfeartikel zum Befehl gcloud artifacts attachments create.

Oras

Wenn Sie einen Anhang mit Oras erstellen, generiert Artifact Registry eine zufällige UUID, die als Anhangsname verwendet wird.

Bevor Sie den Befehl ausführen, ersetzen Sie die folgenden Werte:

  • ARTIFACT_TYPE: die artifactType des Anhangs.

  • IMAGE_URI: Der URI des Bildcontainers, auf den sich der Anhang bezieht.

  • FILE: Eine lokale Datei, die als Metadaten in den Anhang aufgenommen werden soll.

  • MEDIA_TYPE: die mediaType der Ebene.

  oras attach --artifact-type ARTIFACT_TYPE IMAGE_URI FILE:MEDIA_TYPE

Im folgenden Beispiel wird ein Anhang aus einer Datei (hello-world.txt) erstellt, die sich auf ein Container-Image (my-image) bezieht, das durch seinen URI und sein Tag identifiziert wird:

  oras attach --artifact-type doc/example \
  us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 \
  hello-world.txt:application/vnd.me.hi

Wobei:

  • doc/example definiert die artifactType-Eigenschaft des Anhangs.

  • us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 ist der URI mit dem Tag der Container-Image-Version, auf die der Anhang verweist.

  • hello-world.txt ist die lokale Datei, die die Daten des Anhangs enthält.

  • application/vnd.me.hi definiert die mediaType der Ebene.

Eine vollständige Anleitung und weitere Beispiele finden Sie in der oras attach-Dokumentation.

Listenanhänge

Ein Container-Image kann beliebig viele Anhänge haben, die sich darauf beziehen. Sie können Anhänge mit der Google Cloud -Console, der gcloud CLI oder Oras auflisten.

Console

  1. Öffnen Sie in der Google Cloud -Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf den Namen des Repositorys, um die Images in Ihrem Repository aufzurufen.

  3. Klicken Sie auf den Namen des Bildes, um die Versionen aufzurufen.

  4. Klicken Sie auf die gewünschte Bildversion.

  5. Klicken Sie auf den Tab Anhänge, um die Anhänge für diese Version aufzurufen.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • TARGET: der voll qualifizierte Versionsname oder der Artifact Registry-URI des Artefakts, für das Sie Anhänge auflisten möchten. Sie können entweder den Digest oder das Tag verwenden. Beispiel: us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1.

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud artifacts attachments list \
    --target=TARGET

Windows (PowerShell)

gcloud artifacts attachments list `
    --target=TARGET

Windows (cmd.exe)

gcloud artifacts attachments list ^
    --target=TARGET
Weitere Informationen finden Sie im Hilfeartikel zum Befehl gcloud artifacts attachments list.

Oras

Bevor Sie den Befehl ausführen, ersetzen Sie die folgenden Werte:

  • IMAGE_URI: Der URI des Zielbilds, auf das alle aufgeführten Anhänge verweisen.
oras discover --distribution-spec v1.1-referrers-api IMAGE_URI

Im folgenden Beispiel sind Anhänge für ein Container-Image my-image aufgeführt, das anhand seines URI und Tags identifiziert wird:

oras discover --distribution-spec v1.1-referrers-api \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1

Wobei:

  • v1.1-referrers-api ist die verwendete Referrer API. Weitere Informationen finden Sie in der Verteilungsspezifikation.

  • us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1 ist der URI mit dem Tag der Container-Image-Version, für die Anhänge aufgelistet werden sollen.

Eine vollständige Anleitung und weitere Beispiele finden Sie in der oras discover-Dokumentation.

Anhänge herunterladen

Sie können Anhänge mit der gcloud CLI oder Oras herunterladen.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • ATTACHMENT: der voll qualifizierte Name des Anhangs. Beispiel: projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment. Alternativ können Sie hier nur die Anhang-ID angeben und die Flags --location und --repository verwenden.
  • DESTINATION: Der Pfad in Ihrem lokalen Dateisystem, unter dem der Anhang heruntergeladen werden soll.

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud artifacts attachments download ATTACHMENT \
    --destination=DESTINATION

Windows (PowerShell)

gcloud artifacts attachments download ATTACHMENT `
    --destination=DESTINATION

Windows (cmd.exe)

gcloud artifacts attachments download ATTACHMENT ^
    --destination=DESTINATION
Anstelle von ATTACHMENT können Sie das Flag --oci-version-name gefolgt vom vollständigen Versionsnamen oder dem Artifact Registry-URI des Anhangs angeben. Sie können entweder den Digest oder das Tag verwenden. Beispiel: projects/my-project/locations/us-west1/repositories/my-repo/packages/my-package/versions/sha256:abc123.

Weitere Informationen finden Sie im Hilfeartikel zum Befehl gcloud artifacts attachments download.

Oras

Bevor Sie den Befehl ausführen, ersetzen Sie die folgenden Werte:

  • DESTINATION: das Zielverzeichnis für den Anhang.

  • ATTACHMENT_URI: Der URI des Anhangs, der heruntergeladen werden soll. Dies ist der URI für den Image-Container, auf den sich der Anhang bezieht, gefolgt von der eindeutigen SHA des Anhangs.

oras pull -o DESTINATION ATTACHMENT_URI

Im folgenden Beispiel wird ein Anhang heruntergeladen, der anhand seines URI und seines Digests identifiziert wird:

oras pull -o . us-west1-docker.pkg.dev/my-project/my-repo/my-image@sha256:xxxx

Wobei:

  • -o . gibt das aktuelle Verzeichnis als Downloadziel an.

  • us-west1-docker.pkg.dev/my-project/my-repo/my-image@sha256:xxxx ist der Bild-URI mit dem Hashwert des herunterzuladenden Anhangs.

Eine vollständige Anleitung und weitere Beispiele finden Sie in der oras pull-Dokumentation.

Anhänge löschen

Sie können Anhänge direkt über die Google Cloud -Konsole oder die gcloud CLI löschen. Sie können Anhänge indirekt löschen, indem Sie das Container-Image löschen, auf das sie verweisen.

Anhänge direkt löschen

Sie haben folgende Möglichkeiten, Anhänge direkt zu löschen:

Console

  1. Öffnen Sie in der Google Cloud -Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie auf den Namen des Repositorys, um die Images in Ihrem Repository aufzurufen.

  3. Klicken Sie auf den Image-Namen, um die Versionen des Images aufzurufen.

  4. Klicken Sie auf die Version des Bildes, für die Sie Anhänge sehen möchten.

  5. Klicken Sie auf den Tab Anhänge, um die Anhänge für diese Version aufzurufen.

  6. Klicken Sie auf den Digest des Anhangs, den Sie löschen möchten.

  7. Klicken Sie auf Delete.

  8. Klicken Sie im Bestätigungsdialogfeld auf LÖSCHEN.

gcloud

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

  • ATTACHMENT: der voll qualifizierte Name des Anhangs. Beispiel: projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment. Alternativ können Sie hier nur die Anhang-ID angeben und die Flags --location und --repository verwenden.

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud artifacts attachments delete ATTACHMENT

Windows (PowerShell)

gcloud artifacts attachments delete ATTACHMENT

Windows (cmd.exe)

gcloud artifacts attachments delete ATTACHMENT
Weitere Informationen finden Sie im Hilfeartikel zum Befehl gcloud artifacts attachments list.

Anhänge indirekt löschen

Wenn ein Container-Image gelöscht wird, werden auch alle zugehörigen Anhänge gelöscht. Dies gilt sowohl für das manuelle Löschen von Container-Images als auch für Löschungen aufgrund von Bereinigungsrichtlinien.