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 dyskiemc:
, 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 poleceniaENV
. - 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 idocker run
z względnego elementu nadrzędnego ./input
Pierwszym/input
poleceniemCOPY
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.
Utwórz element
Dockerfile
z tekstem z ponownego użycia przepisu. ObiektDockerfile
nie ma rozszerzenia.Zastąp wszystkie wartości w nawiasach kątowych własnymi wartościami.
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 ,
-t
to sposób dodawania informacji o tym, co zostało zmienione dla kontenera. Na przykład nazwa konteneramodified-LUIS
wskazuje, że oryginalny kontener został warstwowy. Nazwa taguwith-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> .
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
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
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.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>