Skicka avbildningar med Databricks CLI

Databricks CLI tillhandahåller hjälpkommandot databricks air images push för att kombinera Docker-autentisering, bildtaggning och att skicka till Artifact Registry. Den känner automatiskt av registerregionen. Du kan använda denna hjälpare istället för de manuella stegen i Artifact Registry-guiden. Hjälparen bygger inte bilder eller skickar in arbetsbelastningar.

Prerequisites

Konfigurera autentisering för arbetsyta

Skapa eller uppdatera en arbetsmiljöprofil OAuth för arbetsytan där du vill lagra bilden:

databricks auth login --profile my-databricks-profile

Docker-inloggningshjälparen kräver denna arbetsyta OAuth-profil. För stödda autentiseringsmetoder, se Sätt upp Docker-autentisering.

Tryck en lokal bild

Till exempel, skicka en lokal bild med namnet my-training-image:v1 till main.ml.training:v1:

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

Kommandot skriver ut namnet på Unity Catalog-bilden för att använda som environment.unity_catalog_image i din arbetsbelastnings-YAML. För detta exempel, använd main.ml.training:v1, som visas i Använd en docker-avbildning i en arbetsbelastning.

Hjälpprogrammet återanvänder en lokal källavbild när en sådan finns. Annars hämtar den källbilden för linux/amd64. Lägg till --pull för att hämta om en källavbild från registret även om den redan finns lokalt. Bilder måste använda linux/amd64. Bygg om en inkompatibel lokal image för den plattformen innan du pushar den. Om källbilden finns i ett privat register, autentisera Docker till det registret innan du kör hjälparen.

För att mata in bilddetaljerna interaktivt, kör databricks air images push --profile my-databricks-profile utan bildflaggorna. Kör databricks air images push --help för alla alternativ.

Skicka en bild från ett annat register

Du kan också använda CLI-hjälparen för att kopiera en befintlig avbildning från ett annat containerregister till Artifact Registry.

Följande exempel använder en privat Amazon Elastic Container Registry (ECR)-lagringsplats som källa. För detta exempel, installera och konfigurera AWS CLI med uppgifter som kan autentisera sig mot ECR och hämta källbilden. Dessa AWS-inloggningsuppgifter är separata från din Databricks-profil.

Först, autentisera Docker till källregistret ECR. Ersätt exempelet på AWS-konto-ID, region, repository och bildtagg med dina egna värden. AWS-regionen måste vara samma som källregistret i ECR, inte som Databricks-arbetsytan för målet. Se autentisering av privat register i AWS-dokumentationen.

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

Skicka sedan hela ECR-bildens URI som --source:

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

Flaggan --pull hämtar linux/amd64 bilden från ECR även om den redan är cachelagrad lokalt. Hjälparen använder din lokala Docker-installation för att hämta, tagga och pusha bilden. Källbilden i ECR är oförändrad. När pushen lyckas, sätt environment.unity_catalog_image in main.ml.training:ecr-v1 YAML i din arbetsbelastning.