Udostępnij za pośrednictwem


Tworzenie kontenerów do ponownego użycia

Użyj tych przepisów kontenera, aby utworzyć kontenery usługi Azure AI, które można użyć ponownie. Kontenery można skompilować przy użyciu niektórych lub wszystkich ustawień konfiguracji, aby nie były potrzebne podczas uruchamiania kontenera.

Po utworzeniu nowej warstwy kontenera (z ustawieniami) i przetestowaniu jej lokalnie można przechowywać kontener w rejestrze kontenerów. Po uruchomieniu kontenera będą potrzebne tylko te ustawienia, które nie są obecnie przechowywane w kontenerze. Kontener rejestru prywatnego zapewnia miejsce konfiguracji, w którym można przekazać te ustawienia.

Składnia uruchamiania platformy Docker

W każdym docker run przykładzie w tym dokumencie założono, że konsola ^ systemu Windows ma znak kontynuacji wiersza. Weź pod uwagę następujące kwestie dotyczące własnego użycia:

  • Nie zmieniaj kolejności argumentów, chyba że znasz już kontenery platformy Docker.
  • Jeśli używasz systemu operacyjnego innego niż Windows lub konsoli innej niż konsola systemu Windows, użyj poprawnej konsoli/terminalu, składni folderu instalacji i znaku kontynuacji wiersza dla konsoli i systemu. Ponieważ kontener usług Azure AI to system operacyjny Linux, instalacja docelowa używa składni folderu w stylu systemu Linux.
  • docker run przykłady używają katalogu z dysku, c: aby uniknąć konfliktów uprawnień w systemie Windows. Jeśli musisz użyć określonego katalogu jako katalogu wejściowego, może być konieczne przyznanie uprawnienia usługi docker.

Brak ustawień konfiguracji na obrazie

Przykładowe docker run polecenia dla każdej usługi nie przechowują żadnych ustawień konfiguracji w kontenerze. Po uruchomieniu kontenera z poziomu konsoli lub usługi rejestru te ustawienia konfiguracji muszą być przekazywane. Kontener rejestru prywatnego zapewnia miejsce konfiguracji, w którym można przekazać te ustawienia.

Ponownie użyj przepisu: zapisz wszystkie ustawienia konfiguracji za pomocą kontenera

Aby przechowywać wszystkie ustawienia konfiguracji, utwórz element Dockerfile z tymi ustawieniami.

Problemy z tym podejściem:

  • Nowy kontener ma oddzielną nazwę i tag z oryginalnego kontenera.
  • Aby zmienić te ustawienia, należy zmienić wartości pliku Dockerfile, ponownie skompilować obraz i ponownie opublikować go w rejestrze.
  • Jeśli ktoś uzyska dostęp do rejestru kontenerów lub hosta lokalnego, może uruchomić kontener i użyć punktów końcowych usług AI platformy Azure.
  • Jeśli używana usługa Azure AI nie wymaga instalacji wejściowych, nie dodawaj COPY wierszy do pliku Dockerfile.

Utwórz plik Dockerfile, ściągając z istniejącego kontenera usług AI platformy Azure, którego chcesz użyć, a następnie użyj poleceń platformy Dockerfile w celu ustawienia lub ściągnięcia informacji potrzebnych kontenerowi.

Ten przykład:

  • Ustawia punkt końcowy {BILLING_ENDPOINT} rozliczeń z klucza środowiska hosta przy użyciu polecenia ENV.
  • Ustawia klucz {ENDPOINT_KEY} interfejsu API rozliczeń z klucza środowiska hosta przy użyciu polecenia "ENV".

Ponowne używanie przepisu: przechowywanie ustawień rozliczeń za pomocą kontenera

W tym przykładzie pokazano, jak skompilować kontener tonacji usługi językowej z pliku Dockerfile.

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

Skompiluj i uruchom kontener lokalnie lub z kontenera rejestru prywatnego zgodnie z potrzebami.

Ponowne używanie przepisu: przechowywanie ustawień rozliczeń i instalacji za pomocą kontenera

W tym przykładzie pokazano, jak używać Language Understanding, zapisywania rozliczeń i modeli z pliku Dockerfile.

  • Kopiuje plik modelu Language Understanding (LUIS) z systemu plików hosta przy użyciu polecenia COPY.
  • Kontener usługi LUIS obsługuje więcej niż jeden model. Jeśli wszystkie modele są przechowywane w tym samym folderze, wszystkie potrzebne są jedną COPY instrukcję.
  • Uruchom plik platformy Docker z względnego elementu nadrzędnego katalogu wejściowego modelu. W poniższym przykładzie uruchom docker build polecenia i docker run z względnego elementu nadrzędnego ./input Pierwszy /input w poleceniu COPY to katalog komputera hosta. Drugi /input to katalog kontenera.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Skompiluj i uruchom kontener lokalnie lub z kontenera rejestru prywatnego zgodnie z potrzebami.

Jak używać kontenera na hoście lokalnym

Aby skompilować plik platformy Docker, zastąp <your-image-name> ciąg nową nazwą obrazu, a następnie użyj:

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

Aby uruchomić obraz i usunąć go po zatrzymaniu kontenera (--rm):

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

Jak dodać kontener do rejestru prywatnego

Wykonaj następujące kroki, aby użyć pliku Dockerfile i umieścić nowy obraz w prywatnym rejestrze kontenerów.

  1. Utwórz element Dockerfile z tekstem z ponownego użycia przepisu. Element A Dockerfile nie ma rozszerzenia.

  2. Zastąp wszystkie wartości w nawiasach kątowych własnymi wartościami.

  3. Skompiluj plik w obrazie w wierszu polecenia lub terminalu, używając następującego polecenia. Zastąp wartości w nawiasach kątowych , <>własną nazwą kontenera i tagiem.

    Opcja tagu , -tto sposób dodawania informacji o tym, co zostało zmienione dla kontenera. Na przykład nazwa kontenera modified-LUIS wskazuje, że oryginalny kontener został warstwowy. Nazwa tagu with-billing-and-model wskazuje, jak został zmodyfikowany kontener Language Understanding (LUIS).

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Zaloguj się do interfejsu wiersza polecenia platformy Azure z poziomu konsoli. To polecenie otwiera przeglądarkę i wymaga uwierzytelnienia. Po uwierzytelnieniu możesz zamknąć przeglądarkę i kontynuować pracę w konsoli programu .

    az login
    
  5. Zaloguj się do rejestru prywatnego przy użyciu interfejsu wiersza polecenia platformy Azure z poziomu konsoli.

    Zastąp wartości w nawiasach kątowych , <my-registry>własną nazwą rejestru.

    az acr login --name <my-registry>
    

    Możesz również zalogować się przy użyciu logowania platformy Docker, jeśli przypisano jednostkę usługi.

    docker login <my-registry>.azurecr.io
    
  6. Tagowanie kontenera za pomocą lokalizacji rejestru prywatnego. Zastąp wartości w nawiasach kątowych , <my-registry>własną nazwą rejestru.

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

    Jeśli nie używasz nazwy tagu, latest jest implikowane.

  7. Wypchnij nowy obraz do prywatnego rejestru kontenerów. Podczas wyświetlania prywatnego rejestru kontenerów nazwa kontenera używana w poniższym poleceniu interfejsu wiersza polecenia będzie nazwą repozytorium.

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

Następne kroki

Tworzenie i używanie wystąpienia kontenera platformy Azure