Udostępnij za pośrednictwem


Wdrażanie wielu kontenerów za pomocą narzędzia Docker Compose

W tym artykule pokazano, jak wdrożyć wiele kontenerów usługi Azure AI. W szczególności dowiesz się, jak używać narzędzia Docker Compose do organizowania wielu obrazów kontenerów platformy Docker.

Docker Compose to narzędzie do definiowania i uruchamiania aplikacji platformy Docker z wieloma kontenerami. W pliku Compose użyjesz pliku YAML do skonfigurowania usług aplikacji. Następnie utworzysz i uruchomisz wszystkie usługi z konfiguracji, uruchamiając jedno polecenie.

Może to być przydatne do organizowania wielu obrazów kontenerów na jednym komputerze hosta. W tym artykule połączymy kontenery odczytu i analizy dokumentów.

Wymagania wstępne

Ta procedura wymaga kilku narzędzi, które muszą być zainstalowane i uruchamiane lokalnie:

  • Subskrypcja Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
  • Aparat platformy Docker. Upewnij się, że interfejs wiersza polecenia platformy Docker działa w oknie konsoli.
  • Zasób platformy Azure z prawidłową warstwą cenową. Tylko następujące warstwy cenowe działają z tym kontenerem:
    • Zasób usługi Azure AI Vision tylko z warstwą cenową F0 lub Standardowa.
    • Zasób analizy dokumentów z tylko warstwą cenową F0 lub Standardowa.
    • Zasób usług azure AI z warstwą cenową S0.
  • Jeśli używasz kontenera z bramą w wersji zapoznawczej, musisz ukończyć formularz żądania online, aby go użyć.

Plik docker Compose

Plik YAML definiuje wszystkie usługi do wdrożenia. Te usługi opierają się na DockerFile istniejącym obrazie kontenera lub na istniejącym obrazie kontenera. W tym przypadku użyjemy dwóch obrazów podglądu. Skopiuj i wklej następujący plik YAML i zapisz go jako plik docker-compose.yaml. Podaj odpowiednie wartości apikey, billing i EndpointUri w pliku.

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"

Ważne

Utwórz katalogi na maszynie hosta, które są określone w węźle woluminów . To podejście jest wymagane, ponieważ katalogi muszą istnieć przed podjęciem próby zainstalowania obrazu przy użyciu powiązań woluminów.

Uruchamianie skonfigurowanych usług Docker Compose

Plik Docker Compose umożliwia zarządzanie wszystkimi etapami w zdefiniowanym cyklu życia usługi: uruchamianie, zatrzymywanie i ponowne kompilowanie usług; wyświetlanie stanu usługi; i przesyłanie strumieniowe dzienników. Otwórz interfejs wiersza polecenia z katalogu projektu (gdzie znajduje się plik docker-compose.yaml).

Uwaga

Aby uniknąć błędów, upewnij się, że maszyna hosta poprawnie współudzieli dyski z aparatem platformy Docker. Jeśli na przykład E:\publicpreview jest używany jako katalog w pliku docker-compose.yaml , udostępnij dysk E z platformą Docker.

W interfejsie wiersza polecenia wykonaj następujące polecenie, aby uruchomić (lub ponownie uruchomić) wszystkie usługi zdefiniowane w pliku docker-compose.yaml :

docker-compose up

Po raz pierwszy platforma Docker wykonuje polecenie docker-compose up przy użyciu tej konfiguracji, pobiera obrazy skonfigurowane w węźle usług , a następnie pobiera i instaluje je:

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

Po pobraniu obrazów zostaną uruchomione usługi obrazów:

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.

Weryfikowanie dostępności usługi

Napiwek

Możesz użyć polecenia docker images , aby wyświetlić listę pobranych obrazów kontenerów. Na przykład następujące polecenie wyświetla identyfikator, repozytorium i tag każdego pobranego obrazu kontenera sformatowane jako tabela:

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

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

Oto kilka przykładowych danych wyjściowych:

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

Kontenery testowe

Otwórz przeglądarkę na maszynie hosta i przejdź do hosta lokalnego przy użyciu określonego portu z pliku docker-compose.yaml , takiego jak http://localhost:5021/swagger/index.html. Na przykład możesz użyć funkcji Wypróbuj w interfejsie API, aby przetestować punkt końcowy analizy dokumentów. Obie strony struktury Swagger powinny być dostępne i testowalne.

Kontener analizy dokumentów

Następne kroki

Kontenery sztucznej inteligencji platformy Azure