Udostępnij za pośrednictwem


Tworzenie kontenerów do ponownego użycia

Użyj tych przepisów kontenera, aby utworzyć kontenery sztucznej inteligencji platformy Azure, których 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 przestrzeń konfiguracji, w której można przekazać te ustawienia.

Składnia uruchamiania platformy Docker

Wszystkie docker run przykłady w tym dokumencie zakładają konsolę systemu Windows z znakiem ^ kontynuacji wiersza. Rozważ następujące kwestie dotyczące własnego użycia:

  • Nie zmieniaj kolejności argumentów, chyba że znasz 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 dla instalacji i znaku kontynuacji wiersza dla konsoli i systemu. Ponieważ kontener usług AI platformy Azure jest systemem operacyjnym Linux, instalacja docelowa używa składni folderu w stylu systemu Linux.
  • docker run przykłady używają katalogu poza dyskiem 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 uprawnień 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 przestrzeń konfiguracji, w której można przekazać te ustawienia.

Ponowne używanie przepisu: przechowywanie wszystkich ustawień 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 od 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 Docker w pliku Dockerfile, aby ustawić lub ściągnąć informacje wymagane przez kontener.

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 utworzyć 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ć usługi Language Understanding, zapisywania rozliczeń i modeli z pliku Dockerfile.

  • Kopiuje plik modelu usługi 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, wystarczy 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 Pierwszym /input poleceniem COPY jest 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. Obiekt 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 przy użyciu 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, w jaki sposób kontener usługi Language Understanding (LUIS) został zmodyfikowany.

    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 uwierzytelniania. 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 docker, jeśli masz przypisaną 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 usługi Azure Container Instance