Push-Abbildungen mit der Databricks-CLI

Die Databricks-CLI bietet den Hilfsbefehl databricks air images push , um Docker-Authentifizierung, Bild-Tagging und das Pushen in das Artifact Registry zu kombinieren. Es erkennt automatisch die Registrierungsregion. Sie können diesen Helfer anstelle der manuellen Schritte im Leitfaden für die Artefaktregistrierung verwenden. Der Helfer erstellt keine Bilder und reicht keine Workloads ein.

Voraussetzungen

Workspace-Authentifizierung konfigurieren

Erstellen oder aktualisieren Sie ein OAuth-Profil für den Arbeitsbereich, in dem Sie das Bild speichern möchten:

databricks auth login --profile my-databricks-profile

Der Docker-Anmeldeinformationen-Helfer benötigt dieses OAuth-Profil des Arbeitsbereichs. Für unterstützte Authentifizierungsmethoden siehe Docker-Authentifizierung einrichten.

Push eines lokalen Bildes

Pushen Sie zum Beispiel ein lokales Bild mit dem Namen my-training-image:v1 auf main.ml.training:v1:

databricks air images push \
  --profile my-databricks-profile \
  --source my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:v1

Der Befehl druckt den Namen des Unity Catalog-Bildes, um ihn wie environment.unity_catalog_image in Ihrem Workload-YAML zu verwenden. Für dieses Beispiel verwenden Sie main.ml.training:v1, wie gezeigt in 'Verwenden eines Docker-Bildes in einem Workload'.

Der Helfer verwendet ein lokales Quellbild wieder, wenn eines vorhanden ist. Ansonsten zieht es das Quellbild für linux/amd64 ab. Fügen Sie --pull hinzu, um ein Quellbild aus der Registrierung zu aktualisieren, auch wenn es lokal verfügbar ist. Bilder müssen linux/amd64 verwenden. Bauen Sie ein für diese Plattform inkompatibles lokales Bild neu auf, bevor du es pushen. Wenn das Quellbild in einer privaten Registry ist, authentifiziere Docker vor dem Ausführen des Helpers bei dieser Registry.

Um die Bilddetails interaktiv einzugeben, führen sie databricks air images push --profile my-databricks-profile ohne Bildflags aus. Führen Sie databricks air images push --help für alle Optionen aus.

Ein Image aus einer anderen Registry pushen

Sie können auch den CLI-Helfer verwenden, um ein bestehendes Image aus einer anderen Container-Registry ins Artifact Registry zu kopieren.

Das folgende Beispiel verwendet ein privates Amazon Elastic Container Registry (ECR) Repository als Quelle. Für dieses Beispiel installieren und konfigurieren Sie die AWS CLI mit Zugangsdaten, die sich bei ECR authentifizieren und das Quellbild abrufen können. Diese AWS-Zugangsdaten sind getrennt von Ihrem Databricks-Profil.

Authentifizieren Sie zuerst Docker in der Quell-ECR-Registrierung. Ersetzen Sie die beispielliche AWS-Konto-ID, Region, das Repository und das Image-Tag durch Ihre eigenen Werte. Die AWS-Region muss mit der Quell-ECR-Registrierung übereinstimmen, nicht mit dem Ziel-Databricks-Arbeitsbereich. Siehe Authentifizierung der privaten Registrierung in der AWS-Dokumentation.

aws ecr get-login-password --region us-west-2 | \
  docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.us-west-2.amazonaws.com

Dann geben Sie die vollständige ECR-Bild-URI als --source ein:

databricks air images push \
  --profile my-databricks-profile \
  --source 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-training-image:v1 \
  --catalog main \
  --schema ml \
  --artifact training:ecr-v1 \
  --pull

Das --pull Flag ruft das linux/amd64 Bild aus ECR ab, selbst wenn es bereits lokal zwischengespeichert ist. Der Helfer verwendet Ihre lokale Docker-Installation, um das Bild herunterzuladen, zu taggen und hochzuladen. Das Quellbild in ECR ist unverändert. Nachdem der Push erfolgreich ausgeführt wurde, legen Sie environment.unity_catalog_image auf main.ml.training:ecr-v1 in Ihrem Arbeitsbelastungs-YAML fest.