Delen via


Containers maken voor hergebruik

Gebruik deze containerrecepten om Azure AI-containers te maken die opnieuw kunnen worden gebruikt. Containers kunnen worden gebouwd met enkele of alle configuratie-instellingen, zodat ze niet nodig zijn wanneer de container wordt gestart.

Zodra u deze nieuwe containerlaag (met instellingen) hebt en deze lokaal hebt getest, kunt u de container opslaan in een containerregister. Wanneer de container wordt gestart, hebt u alleen de instellingen nodig die momenteel niet in de container zijn opgeslagen. De privéregistercontainer biedt configuratieruimte waarin u deze instellingen kunt doorgeven.

Docker-runsyntaxis

In alle docker run voorbeelden in dit document wordt ervan uitgegaan dat een Windows-console met een ^ regelvervolgingsteken wordt gebruikt. Houd rekening met het volgende voor uw eigen gebruik:

  • Wijzig de volgorde van de argumenten niet, tenzij u bekend bent met docker-containers.
  • Als u een ander besturingssysteem dan Windows of een andere console dan Windows-console gebruikt, gebruikt u de juiste console/terminal, de syntaxis van de map voor koppels en het regelvervolgteken voor uw console en systeem. Omdat de Azure AI Services-container een Linux-besturingssysteem is, maakt de doelkoppeling gebruik van de syntaxis van een map in Linux-stijl.
  • docker run Voorbeelden gebruiken de map van het c: station om machtigingsconflicten in Windows te voorkomen. Als u een specifieke map als invoermap moet gebruiken, moet u mogelijk de docker-servicemachtiging verlenen.

Geen configuratie-instellingen opslaan in installatiekopieën

In de voorbeeldopdrachten docker run voor elke service worden geen configuratie-instellingen in de container opgeslagen. Wanneer u de container start vanuit een console- of registerservice, moeten deze configuratie-instellingen worden doorgegeven. De privéregistercontainer biedt configuratieruimte waarin u deze instellingen kunt doorgeven.

Recept opnieuw gebruiken: alle configuratie-instellingen opslaan met container

Als u alle configuratie-instellingen wilt opslaan, maakt u een Dockerfile met deze instellingen.

Problemen met deze aanpak:

  • De nieuwe container heeft een afzonderlijke naam en tag van de oorspronkelijke container.
  • Als u deze instellingen wilt wijzigen, moet u de waarden van het Dockerfile wijzigen, de installatiekopieën opnieuw opbouwen en opnieuw publiceren naar uw register.
  • Als iemand toegang krijgt tot uw containerregister of uw lokale host, kan deze de container uitvoeren en de Azure AI-services-eindpunten gebruiken.
  • Als voor de Azure AI-service die u gebruikt geen invoerkoppelingen nodig zijn, voegt u de COPY regels niet toe aan uw Dockerfile.

Maak Dockerfile, pulling uit de bestaande Azure AI-servicescontainer die u wilt gebruiken en gebruik vervolgens Docker-opdrachten in het Dockerfile om informatie in te stellen of op te halen die de container nodig heeft.

Dit voorbeeld:

  • Hiermee stelt u het factureringseindpunt in op {BILLING_ENDPOINT} basis van de omgevingssleutel van de host.ENV
  • Hiermee stelt u de facturerings-API-sleutel in op {ENDPOINT_KEY} basis van de omgevingssleutel van de host met behulp van ENV.

Recept opnieuw gebruiken: factureringsinstellingen opslaan met container

In dit voorbeeld ziet u hoe u de sentimentcontainer van de Language-service bouwt vanuit een Dockerfile.

FROM mcr.microsoft.com/azure-cognitive-services/sentiment:latest
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept

Bouw en voer de container lokaal of vanuit uw privéregistercontainer uit, indien nodig.

Recept opnieuw gebruiken: facturerings- en koppelinstellingen opslaan met container

In dit voorbeeld ziet u hoe u Language Understanding gebruikt, facturering en modellen opslaat vanuit het Dockerfile.

  • Kopieert het LUIS-modelbestand (Language Understanding) uit het bestandssysteem van de host met behulp van COPY.
  • De LUIS-container ondersteunt meer dan één model. Als alle modellen in dezelfde map zijn opgeslagen, hebt u allemaal één COPY instructie nodig.
  • Voer het docker-bestand uit vanaf het relatieve bovenliggende element van de modelinvoermap. Voer in het volgende voorbeeld de docker build en docker run opdrachten uit van het relatieve bovenliggende element van /input. De eerste /input op de opdracht is de map van de COPY hostcomputer. De tweede /input is de map van de container.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Bouw en voer de container lokaal of vanuit uw privéregistercontainer uit, indien nodig.

Container gebruiken op uw lokale host

Als u het Docker-bestand wilt bouwen, vervangt u deze door <your-image-name> de nieuwe naam van de installatiekopieën en gebruikt u:

docker build -t <your-image-name> .

Als u de installatiekopieën wilt uitvoeren en deze wilt verwijderen wanneer de container stopt (--rm):

docker run --rm <your-image-name>

Container toevoegen aan privéregister

Volg deze stappen om het Dockerfile te gebruiken en de nieuwe installatiekopieën in uw privécontainerregister te plaatsen.

  1. Maak een Dockerfile met de tekst van het hergebruik van recept. A Dockerfile heeft geen extensie.

  2. Vervang eventuele waarden in de punthaken door uw eigen waarden.

  3. Bouw het bestand in een installatiekopie op de opdrachtregel of terminal met behulp van de volgende opdracht. Vervang de waarden in de punthaken door <>de naam en tag van uw eigen container.

    De tagoptie, -tis een manier om informatie toe te voegen over wat u voor de container hebt gewijzigd. Een containernaam modified-LUIS geeft bijvoorbeeld aan dat de oorspronkelijke container gelaagd is. Een tagnaam van with-billing-and-model geeft aan hoe de Luis-container (Language Understanding) is gewijzigd.

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Meld u aan bij Azure CLI vanuit een console. Met deze opdracht wordt een browser geopend en is verificatie vereist. Nadat u bent geverifieerd, kunt u de browser sluiten en doorgaan met werken in de console.

    az login
    
  5. Meld u aan bij uw privéregister met Azure CLI vanuit een console.

    Vervang de waarden in de punthaken door <my-registry>uw eigen registernaam.

    az acr login --name <my-registry>
    

    U kunt zich ook aanmelden met docker-aanmelding als u een service-principal hebt toegewezen.

    docker login <my-registry>.azurecr.io
    
  6. Tag de container met de locatie van het privéregister. Vervang de waarden in de punthaken door <my-registry>uw eigen registernaam.

    docker tag <your-new-container-name>:<your-new-tag-name> <my-registry>.azurecr.io/<your-new-container-name-in-registry>:<your-new-tag-name>
    

    Als u geen tagnaam gebruikt, latest wordt dit geïmpliceerd.

  7. Push de nieuwe installatiekopieën naar uw privécontainerregister. Wanneer u uw privécontainerregister bekijkt, is de containernaam die wordt gebruikt in de volgende CLI-opdracht de naam van de opslagplaats.

    docker push <my-registry>.azurecr.io/<your-new-container-name-in-registry>:<your-new-tag-name>
    

Volgende stappen

Azure Container Instance maken en gebruiken