Push images met de Databricks CLI

Important

Deze functie bevindt zich in de bètaversie. Om het te gebruiken, moet een workspace-beheerder de AI Runtime Beta Features en Databricks Artifact Registry previews inschakelen vanaf de pagina Voorlezen van de werkruimte.

De Databricks CLI biedt het helpercommando databricks air images push om Docker-authenticatie, image tagging en pushen naar Artifact Registry te combineren. Het detecteert automatisch het registergebied. Je kunt deze helper gebruiken in plaats van de handmatige stappen in de Artifact Registry-gids. De helper bouwt geen images en dient geen workloads in.

Prerequisites

  • Installeer Databricks CLI versie 1.19.0 of hoger. Zie De Databricks CLI installeren of bijwerken.
  • Stel Artifact Registry in in de werkruimte waar je de afbeelding wilt opslaan. Zie Begin met het Artefactregister.
  • Maak een bestemmingscatalogus en schema aan of selecteer dit, en verkrijg de vereiste Artifact Registry-rechten.
  • Installeer en start Docker op je lokale machine. Docker moet beschikbaar zijn op jouw PATH.

Workspace-authenticatie configureren

Maak een werkruimte-OAuth-profiel aan of vernieuw het voor de werkruimte waar je de afbeelding wilt opslaan:

databricks auth login --profile my-databricks-profile

De Docker-inloggegevenshelper vereist dit OAuth-profiel van de werkruimte. Voor ondersteunde authenticatiemethoden, zie Docker-authenticatie instellen.

Een lokale image pushen

Bijvoorbeeld, push een lokale image met de naam my-training-image:v1 naar main.ml.training:v1:

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

Het commando print de naam van de Unity Catalog-image af om te gebruiken als environment.unity_catalog_image in je workload-YAML. Gebruik in dit voorbeeld main.ml.training:v1, zoals getoond in Gebruik een Docker-image in een workload.

De helper hergebruikt een lokaal bronbeeld wanneer er een bestaat. Anders haalt het de bronafbeelding op voor linux/amd64. Voeg --pull toe om een bronafbeelding uit de registry te verversen, zelfs als deze lokaal beschikbaar is. Afbeeldingen moeten gebruikmaken van linux/amd64. Bouw een niet-compatibele lokale image voor dat platform opnieuw op voordat je het pusht. Als de bronimage in een privé register staat, authenticeer dan Docker bij dat register voordat je de helper uitvoert.

Om de afbeeldingsdetails interactief in te voeren, voer databricks air images push --profile my-databricks-profile uit zonder afbeeldingsvlaggen. Voer databricks air images push --help uit om alle opties te zien.

Stuur een image vanuit een andere registry

Je kunt ook de CLI-helper gebruiken om een bestaand image van een ander containerregister naar Artifact Registry te kopiëren.

Het volgende voorbeeld gebruikt een privérepository in Amazon Elastic Container Registry (ECR) als bron. Installeer en configureer de AWS CLI voor dit voorbeeld met inloggegevens waarmee u zich bij ECR kunt verifiëren en de bronimage kunt ophalen. Deze AWS-inloggegevens staan los van je Databricks-profiel.

Meld Docker eerst aan bij het bronregister ECR. Vervang het voorbeeld van de AWS-account-ID, regio, repository en imagetag door je eigen waarden. De AWS-regio moet overeenkomen met het bron-ECR-register, niet met de Databricks-werkruimte. Zie authenticatie voor privéregisters in de AWS-documentatie.

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

Geef vervolgens de volledige ECR-image URI door als --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

De --pull flag haalt de linux/amd64 afbeelding op van ECR, zelfs als deze al lokaal gecached is. Het hulpprogramma gebruikt je lokale Docker-installatie om de image op te halen, te taggen en te pushen. De bronafbeelding in ECR is ongewijzigd. Nadat het pushen is gelukt, stel environment.unity_catalog_image in op main.ml.training:ecr-v1 in je workload-YAML.