Skapa containrar för återanvändning
Använd dessa containerrecept för att skapa Cognitive Services-containrar som kan återanvändas. Containrar kan byggas 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. Containern för det privata registret innehåller konfigurationsutrymme där du kan skicka dessa inställningar.
Syntax för Docker-körning
Alla docker run exempel i det här dokumentet förutsätter Windows en konsol med ett rad ^ fortsättningstecken. Tänk på följande för eget bruk:
- Ändra inte ordningen på argumenten om du inte är 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 rad fortsättningstecken för konsolen och systemet. Eftersom containern Cognitive Services Linux-operativsystem använder målmonteringen en mappsyntax i Linux-format.
docker runi exemplen används katalogen utanförc:enheten för att undvika behörighetskonflikter på Windows. Om du behöver använda en specifik katalog som indatakatalog kan du behöva ge Docker-tjänsten behörighet.
Lagra inga konfigurationsinställningar i avbildningen
docker runExempelkommandona 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 överföras. Containern för det privata registret innehåller konfigurationsutrymme där du kan skicka dessa inställningar.
Återanvänd recept: lagra alla konfigurationsinställningar med container
För att kunna 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 annan tagg ä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 den på nytt i registret.
- Om någon får åtkomst till ditt containerregister eller din lokala värd kan de köra containern och använda Cognitive Services slutpunkterna.
- Om Cognitive Service inte kräver indatamonteringar ska du inte lägga till raderna
COPYi din Dockerfile.
Skapa Dockerfile, hämta från den befintliga Cognitive Services-containern 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 avENV. - Anger fakturerings-API-nyckeln
{ENDPOINT_KEY}från 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 Language-tjä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, sparar fakturering och modeller från Dockerfile.
- Kopierar Language Understanding (LUIS) från värdens filsystem med hjälp av
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 det relativa överordnade objektet i modellens indatakatalog. I följande exempel kör du kommandona
docker buildoch från den relativa överordnade delen avdocker run/input. Den första/inputiCOPYkommandot ä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 en container på din lokala värd
För att skapa Docker-filen <your-image-name> ersätter du med det nya namnet på avbildningen och använder sedan:
docker build -t <your-image-name> .
Köra avbildningen och ta bort den när containern stoppas ( --rm ):
docker run --rm <your-image-name>
Så här lägger du till en container i ett privat register
Följ de här stegen för att använda Dockerfile och placera den nya avbildningen i ditt privata containerregister.
Skapa en
Dockerfilemed texten från återanvändning av recept. ADockerfilehar inte något tillägg.Ersätt alla värden i vinkelparenteserna med dina egna värden.
Skapa filen i en avbildning på kommandoraden eller terminalen med hjälp av följande kommando. Ersätt värdena i vinkelparenteserna,
<>, med ditt eget containernamn och tagg.Taggalternativet ,
-tär ett sätt att lägga till information om vad du har ändrat för containern. Containernamnet anger till exempel attmodified-LUISden ursprungliga containern har skiktats. Taggnamnet angerwith-billing-and-modelhur LUIS-containern (Language Understanding) har ändrats.docker build -t <your-new-container-name>:<your-new-tag-name> .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 loginLogga in på ditt privata register med Azure CLI från en konsol.
Ersätt värdena i 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 ett huvudnamn för tjänsten.
docker login <my-registry>.azurecr.ioTagga containern med den privata registerplatsen. Ersätt värdena i 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 är det
latestunderförstått.Push-skicka den nya avbildningen till ditt privata containerregister. När du visar ditt privata containerregister är det containernamn 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>