Dela via


Skapa containrar för återanvändning

Använd dessa containerrecept för att skapa Azure AI-containrar som kan återanvändas. Containrar kan skapas med vissa eller alla konfigurationsinställningar så att de inte behövs när containern startas.

När du har det här nya containerlagret (med inställningar) och du har testat det lokalt kan du lagra containern i ett containerregister. När containern startar behöver den bara de inställningar som för närvarande inte lagras i containern. Den privata registercontainern tillhandahåller konfigurationsutrymme som du kan använda för att skicka in inställningarna.

Docker-körningssyntax

Alla docker run exempel i det här dokumentet förutsätter en Windows-konsol med ett ^ radfortsättningstecken. Överväg följande för eget bruk:

  • Ändra inte ordningen på argumenten om du inte är mycket bekant med Docker-containrar.
  • Om du använder ett annat operativsystem än Windows eller en annan konsol än Windows-konsolen använder du rätt konsol/terminal, mappsyntax för monteringar och radfortsättningstecken för konsolen och systemet. Eftersom Azure AI-tjänstcontainern är ett Linux-operativsystem använder målmonteringen en mappsyntax i Linux-stil.
  • docker run exempel använder katalogen utanför c: enheten för att undvika eventuella behörighetskonflikter i Windows. Om du behöver använda en specifik katalog som indatakatalog kan du behöva bevilja docker-tjänsten behörighet.

Lagra inga konfigurationsinställningar i avbildningen

docker run Exempelkommandona för varje tjänst lagrar inte några konfigurationsinställningar i containern. När du startar containern från en konsol eller registertjänst måste dessa konfigurationsinställningar skickas in. Den privata registercontainern tillhandahåller konfigurationsutrymme som du kan använda för att skicka in inställningarna.

Återanvänd recept: lagra alla konfigurationsinställningar med container

För att lagra alla konfigurationsinställningar skapar du en Dockerfile med dessa inställningar.

Problem med den här metoden:

  • Den nya containern har ett separat namn och en tagg från den ursprungliga containern.
  • Om du vill ändra de här inställningarna måste du ändra värdena för Dockerfile, återskapa avbildningen och publicera om den i registret.
  • Om någon får åtkomst till ditt containerregister eller din lokala värd kan de köra containern och använda Azure AI-tjänstslutpunkterna.
  • Om Azure AI-tjänsten som du använder inte kräver indatamonteringar ska du inte lägga till raderna i COPY Dockerfile.

Skapa Dockerfile, hämta från den befintliga Azure AI-tjänstcontainer som du vill använda och använd sedan Docker-kommandon i Dockerfile för att ange eller hämta information som containern behöver.

Det här exemplet:

  • Anger faktureringsslutpunkten {BILLING_ENDPOINT} från värdens miljönyckel med hjälp av ENV.
  • Anger API-nyckeln för fakturering från {ENDPOINT_KEY} värdens miljönyckel med hjälp av ENV.

Återanvänd recept: lagra faktureringsinställningar med container

Det här exemplet visar hur du skapar språktjänstens sentimentcontainer från en Dockerfile.

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

Skapa och kör containern lokalt eller från din privata registercontainer efter behov.

Återanvänd recept: Lagra fakturerings- och monteringsinställningar med container

Det här exemplet visar hur du använder Language Understanding och sparar fakturering och modeller från Dockerfile.

  • Kopierar LUIS-modellfilen (Language Understanding) från värdens filsystem med .COPY
  • LUIS-containern stöder mer än en modell. Om alla modeller lagras i samma mapp behöver du alla en COPY instruktion.
  • Kör docker-filen från den relativa överordnade katalogen för modellens indatakatalog. I följande exempel kör du kommandona docker build och docker run från den relativa överordnade i /input. Det första /input kommandot COPY är värddatorns katalog. Den andra /input är containerns katalog.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Skapa och kör containern lokalt eller från din privata registercontainer efter behov.

Så här använder du containern på den lokala värden

Om du vill skapa Docker-filen ersätter du <your-image-name> med det nya namnet på avbildningen och använder sedan:

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

Så här kör du avbildningen och tar bort den när containern stoppas (--rm):

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

Så här lägger du till container i det privata registret

Följ dessa steg för att använda Dockerfile och placera den nya avbildningen i ditt privata containerregister.

  1. Skapa en Dockerfile med texten från återanvändningsreceptet. A Dockerfile har inget tillägg.

  2. Ersätt alla värden inom vinkelparenteserna med dina egna värden.

  3. Skapa filen till en avbildning på kommandoraden eller terminalen med hjälp av följande kommando. Ersätt värdena i vinkelparenteserna, <>, med ditt eget containernamn och din egen tagg.

    Taggalternativet , -tär ett sätt att lägga till information om vad du har ändrat för containern. Ett containernamn modified-LUIS för anger till exempel att den ursprungliga containern har lagerats. Ett taggnamn för with-billing-and-model anger hur LUIS-containern (Language Understanding) har ändrats.

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Logga in på Azure CLI från en konsol. Det här kommandot öppnar en webbläsare och kräver autentisering. När du har autentiserats kan du stänga webbläsaren och fortsätta arbeta i konsolen.

    az login
    
  5. Logga in på ditt privata register med Azure CLI från en konsol.

    Ersätt värdena inom vinkelparenteserna, <my-registry>, med ditt eget registernamn.

    az acr login --name <my-registry>
    

    Du kan också logga in med docker-inloggning om du har tilldelats tjänstens huvudnamn.

    docker login <my-registry>.azurecr.io
    
  6. Tagga containern med den privata registerplatsen. Ersätt värdena inom vinkelparenteserna, <my-registry>, med ditt eget registernamn.

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

    Om du inte använder ett taggnamn latest är det underförstått.

  7. Skicka den nya avbildningen till ditt privata containerregister. När du visar ditt privata containerregister är containernamnet som används i följande CLI-kommando namnet på lagringsplatsen.

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

Nästa steg

Skapa och använda Azure Container Instance