Använda Docker Compose för att distribuera flera containrar

Den här artikeln visar hur du distribuerar flera Azure AI-containrar. Mer specifikt får du lära dig hur du använder Docker Compose för att orkestrera flera Docker-containeravbildningar.

Docker Compose är ett verktyg för att definiera och köra Docker-program med flera containrar. I Compose använder du en YAML-fil för att konfigurera programmets tjänster. Sedan skapar och startar du alla tjänster från konfigurationen genom att köra ett enda kommando.

Det kan vara användbart att orkestrera flera containeravbildningar på en enda värddator. I den här artikeln ska vi samla containrarna Läs- och dokumentinformation.

Förutsättningar

Den här proceduren kräver flera verktyg som måste installeras och köras lokalt:

  • En Azure-prenumeration. Om du inte har ett skapar du ett kostnadsfritt konto innan du börjar.
  • Docker Engine. Bekräfta att Docker CLI fungerar i ett konsolfönster.
  • En Azure-resurs med rätt prisnivå. Endast följande prisnivåer fungerar med den här containern:
    • Azure AI Vision-resurs med endast prisnivån F0 eller Standard.
    • Dokumentinformationsresurs med endast prisnivån F0 eller Standard.
    • Azure AI-tjänstresurs med prisnivån S0.
  • Om du använder en container för gated preview måste du fylla i formuläret för onlinebegäran för att kunna använda det.

Docker Compose-fil

YAML-filen definierar alla tjänster som ska distribueras. Dessa tjänster förlitar sig på antingen en DockerFile eller en befintlig containeravbildning. I det här fallet använder vi två förhandsgranskningsbilder. Kopiera och klistra in följande YAML-fil och spara den som docker-compose.yaml. Ange lämpliga apikey-, fakturerings- och EndpointUri-värden i filen.

version: '3.7'
services:
  forms:
    image: "mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout"
    environment:
       eula: accept
       billing: # < Your Document Intelligence billing URL >
       apikey: # < Your Document Intelligence API key >
       FormRecognizer__ComputerVisionApiKey: # < Your Document Intelligence API key >
       FormRecognizer__ComputerVisionEndpointUri: # < Your Document Intelligence URI >
    volumes:
       - type: bind
         source: E:\publicpreview\output
         target: /output
       - type: bind
         source: E:\publicpreview\input
         target: /input
    ports:
      - "5010:5000"

  ocr:
    image: "mcr.microsoft.com/azure-cognitive-services/vision/read:3.1-preview"
    environment:
      eula: accept
      apikey: # < Your Azure AI Vision API key >
      billing: # < Your Azure AI Vision billing URL >
    ports:
      - "5021:5000"

Viktigt

Skapa katalogerna på värddatorn som anges under volymnoden . Den här metoden krävs eftersom katalogerna måste finnas innan du försöker montera en avbildning med hjälp av volymbindningar.

Starta de konfigurerade Docker Compose-tjänsterna

En Docker Compose-fil möjliggör hantering av alla faser i en definierad tjänsts livscykel: starta, stoppa och återskapa tjänster; visa tjänstens status. och loggströmning. Öppna ett kommandoradsgränssnitt från projektkatalogen (där filen docker-compose.yaml finns).

Anteckning

För att undvika fel kontrollerar du att värddatorn delar enheter korrekt med Docker Engine. Om till exempel E:\publicpreview används som en katalog i filen docker-compose.yaml delar du enhet E med Docker.

Kör följande kommando från kommandoradsgränssnittet för att starta (eller starta om) alla tjänster som definierats i filen docker-compose.yaml :

docker-compose up

Första gången Docker kör kommandot docker-compose up med hjälp av den här konfigurationen hämtas avbildningarna som konfigurerats under tjänstnoden och laddar sedan ned och monterar dem:

Pulling forms (mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout:)...
latest: Pulling from azure-cognitive-services/form-recognizer/layout
743f2d6c1f65: Pull complete
72befba99561: Pull complete
2a40b9192d02: Pull complete
c7715c9d5c33: Pull complete
f0b33959f1c4: Pull complete
b8ab86c6ab26: Pull complete
41940c21ed3c: Pull complete
e3d37dd258d4: Pull complete
cdb5eb761109: Pull complete
fd93b5f95865: Pull complete
ef41dcbc5857: Pull complete
4d05c86a4178: Pull complete
34e811d37201: Pull complete
Pulling ocr (mcr.microsoft.com/azure-cognitive-services/vision/read:3.1-preview:)...
latest: Pulling from /azure-cognitive-services/vision/read:3.1-preview
f476d66f5408: Already exists
8882c27f669e: Already exists
d9af21273955: Already exists
f5029279ec12: Already exists
1a578849dcd1: Pull complete
45064b1ab0bf: Download complete
4bb846705268: Downloading [=========================================>         ]  187.1MB/222.8MB
c56511552241: Waiting
e91d2aa0f1ad: Downloading [==============================================>    ]  162.2MB/176.1MB

När avbildningarna har laddats ned startas avbildningstjänsterna:

Starting docker_ocr_1   ... done
Starting docker_forms_1 ... doneAttaching to docker_ocr_1, docker_forms_1forms_1  | forms_1  | forms_1  | Notice: This Preview is made available to you on the condition that you agree to the Supplemental Terms of Use for Microsoft Azure Previews [https://go.microsoft.com/fwlink/?linkid=2018815], which supplement your agreement [https://go.microsoft.com/fwlink/?linkid=2018657] governing your use of Azure. If you do not have an existing agreement governing your use of Azure, you agree that your agreement governing use of Azure is the Microsoft Online Subscription Agreement [https://go.microsoft.com/fwlink/?linkid=2018755] (which incorporates the Online Services Terms [https://go.microsoft.com/fwlink/?linkid=2018760]). By using the Preview you agree to these terms.
forms_1  | 
forms_1  | 
forms_1  | Using '/input' for reading models and other read-only data.
forms_1  | Using '/output/forms/812d811d1bcc' for writing logs and other output data.
forms_1  | Logging to console.
forms_1  | Submitting metering to 'https://westus2.api.cognitive.microsoft.com/'.
forms_1  | WARNING: No access control enabled!
forms_1  | warn: Microsoft.AspNetCore.Server.Kestrel[0]
forms_1  |       Overriding address(es) 'http://+:80'. Binding to endpoints defined in UseKestrel() instead.
forms_1  | Hosting environment: Production
forms_1  | Content root path: /app/forms
forms_1  | Now listening on: http://0.0.0.0:5000
forms_1  | Application started. Press Ctrl+C to shut down.
ocr_1    | 
ocr_1    | 
ocr_1    | Notice: This Preview is made available to you on the condition that you agree to the Supplemental Terms of Use for Microsoft Azure Previews [https://go.microsoft.com/fwlink/?linkid=2018815], which supplement your agreement [https://go.microsoft.com/fwlink/?linkid=2018657] governing your use of Azure. If you do not have an existing agreement governing your use of Azure, you agree that your agreement governing use of Azure is the Microsoft Online Subscription Agreement [https://go.microsoft.com/fwlink/?linkid=2018755] (which incorporates the Online Services Terms [https://go.microsoft.com/fwlink/?linkid=2018760]). By using the Preview you agree to these terms.
ocr_1    |
ocr_1    | 
ocr_1    | Logging to console.
ocr_1    | Submitting metering to 'https://westcentralus.api.cognitive.microsoft.com/'.
ocr_1    | WARNING: No access control enabled!
ocr_1    | Hosting environment: Production
ocr_1    | Content root path: /
ocr_1    | Now listening on: http://0.0.0.0:5000
ocr_1    | Application started. Press Ctrl+C to shut down.

Kontrollera tjänstens tillgänglighet

Tips

Du kan använda kommandot docker images för att visa en lista över dina nedladdade containeravbildningar. Följande kommando visar till exempel ID, lagringsplats och tagg för varje nedladdad containeravbildning, formaterad som en tabell:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

Här är några exempel på utdata:

IMAGE ID            REPOSITORY                                                                 TAG
2ce533f88e80        mcr.microsoft.com/azure-cognitive-services/form-recognizer/layout          latest
4be104c126c5        mcr.microsoft.com/azure-cognitive-services/vision/read:3.1-preview         latest

Testa containrar

Öppna en webbläsare på värddatorn och gå till localhost med hjälp av den angivna porten från filen docker-compose.yaml , till exempel http://localhost:5021/swagger/index.html. Du kan till exempel använda funktionen Prova i API:et för att testa slutpunkten för dokumentinformation. Båda containrarnas swagger-sidor ska vara tillgängliga och testbara.

Container för dokumentinformation

Nästa steg

Azure AI-containrar