Vytváření kontejnerů pro opakované použití

Pomocí těchto receptů o kontejnerech můžete vytvářet kontejnery Azure AI, které je možné opakovaně používat. Kontejnery je možné sestavit s některými nebo všemi nastaveními konfigurace, aby při spuštění kontejneru nebyly potřeba.

Jakmile budete mít tuto novou vrstvu kontejneru (s nastavením) a máte ji otestovanou místně, můžete kontejner uložit do registru kontejneru. Když se kontejner spustí, bude potřebovat jenom ta nastavení, která nejsou aktuálně uložená v kontejneru. Kontejner privátního registru poskytuje prostor pro konfiguraci, abyste tato nastavení mohli předat.

Syntaxe spuštění Dockeru

Všechny docker run příklady v tomto dokumentu předpokládají konzolu Windows se znakem ^ pokračování řádku. Pro vlastní použití zvažte následující:

  • Neměňte pořadí argumentů, pokud nemáte zkušenosti s kontejnery Dockeru.
  • Pokud používáte jiný operační systém než Windows nebo konzolu jinou než konzolu Windows, použijte správnou konzolu nebo terminál, syntaxi složek pro připojení a znak pokračování řádku pro konzolu a systém. Vzhledem k tomu, že kontejner služeb Azure AI je operační systém Linux, cílové připojení používá syntaxi složek ve stylu Linuxu.
  • docker run Příklady použití adresáře mimo jednotku c: , aby se zabránilo konfliktům oprávnění ve Windows. Pokud jako vstupní adresář potřebujete použít konkrétní adresář, možná budete muset službě Docker udělit oprávnění.

Neukládejte v imagi žádná nastavení konfigurace.

Ukázkové docker run příkazy pro každou službu neukládají do kontejneru žádná nastavení konfigurace. Když kontejner spustíte z konzoly nebo služby registru, musí se tato nastavení konfigurace předat. Kontejner privátního registru poskytuje prostor pro konfiguraci, abyste tato nastavení mohli předat.

Opětovné použití receptu: Uložení všech nastavení konfigurace pomocí kontejneru

Pokud chcete uložit všechna nastavení konfigurace, vytvořte s těmito nastaveními Dockerfile .

Problémy s tímto přístupem:

  • Nový kontejner má samostatný název a značku od původního kontejneru.
  • Pokud chcete tato nastavení změnit, budete muset změnit hodnoty souboru Dockerfile, znovu sestavit image a znovu publikovat do registru.
  • Pokud někdo získá přístup k vašemu registru kontejneru nebo místnímu hostiteli, může kontejner spustit a používat koncové body služeb Azure AI.
  • Pokud služba Azure AI, kterou používáte, nevyžaduje vstupní připojení, nepřidávejte COPY řádky do souboru Dockerfile.

Vytvořte soubor Dockerfile a stáhněte si z existujícího kontejneru služeb Azure AI, který chcete použít, a pak pomocí příkazů Dockerfile nastavte nebo načítejte informace, které kontejner potřebuje.

Tento příklad:

  • Nastaví koncový bod {BILLING_ENDPOINT} fakturace z klíče prostředí hostitele pomocí ENV.
  • Nastaví klíč {ENDPOINT_KEY} rozhraní API pro fakturaci z klíče prostředí hostitele pomocí env.

Opakované použití receptu: uložení nastavení fakturace pomocí kontejneru

Tento příklad ukazuje, jak sestavit kontejner mínění služby Language ze souboru Dockerfile.

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

Podle potřeby sestavte a spusťte kontejner místně nebo z kontejneru privátního registru .

Opakované použití receptu: uložení nastavení fakturace a připojení pomocí kontejneru

Tento příklad ukazuje, jak používat Language Understanding a ukládat fakturaci a modely ze souboru Dockerfile.

  • Zkopíruje soubor modelu Language Understanding (LUIS) ze systému souborů hostitele pomocí COPYpříkazu .
  • Kontejner LUIS podporuje více než jeden model. Pokud jsou všechny modely uložené ve stejné složce, budete potřebovat jeden COPY příkaz.
  • Spusťte soubor dockeru z relativního nadřazeného vstupního adresáře modelu. V následujícím příkladu docker build spusťte příkazy a docker run z relativního nadřazeného objektu /input. První /input v COPY příkazu je adresář hostitelského počítače. Druhým /input je adresář kontejneru.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Podle potřeby sestavte a spusťte kontejner místně nebo z kontejneru privátního registru .

Jak používat kontejner na místním hostiteli

Pokud chcete sestavit soubor Dockeru, nahraďte <your-image-name> novým názvem image a pak použijte:

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

Spuštění image a odebrání při zastavení kontejneru (--rm):

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

Přidání kontejneru do privátního registru

Pokud chcete použít soubor Dockerfile a umístit novou image do privátního registru kontejneru, postupujte podle těchto kroků.

  1. Vytvořte s Dockerfile textem z opakovaného použití receptu. A Dockerfile nemá rozšíření.

  2. Nahraďte všechny hodnoty v lomených závorkách vlastními hodnotami.

  3. Pomocí následujícího příkazu zabudujte soubor do image na příkazovém řádku nebo v terminálu. Nahraďte hodnoty v lomených závorkách <>vlastním názvem kontejneru a značkou.

    Možnost značky představuje způsob, jak přidat informace o tom, -tco jste pro kontejner změnili. Například název modified-LUIS kontejneru znamená, že původní kontejner byl vrstvený. Název with-billing-and-model značky označuje, jak se změnil kontejner Language Understanding (LUIS).

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Přihlaste se k Azure CLI z konzoly. Tento příkaz otevře prohlížeč a vyžaduje ověření. Po ověření můžete prohlížeč zavřít a pokračovat v práci v konzole nástroje .

    az login
    
  5. Přihlaste se k privátnímu registru pomocí Azure CLI z konzoly.

    Nahraďte hodnoty v lomených závorkách <my-registry>vlastním názvem registru.

    az acr login --name <my-registry>
    

    Můžete se také přihlásit pomocí přihlášení Dockeru, pokud máte přiřazený instanční objekt.

    docker login <my-registry>.azurecr.io
    
  6. Označte kontejner umístěním privátního registru. Nahraďte hodnoty v lomených závorkách <my-registry>vlastním názvem registru.

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

    Pokud nepoužijete název značky, latest je implicitní.

  7. Nasdílejte novou image do privátního registru kontejneru. Při zobrazení privátního registru kontejneru bude název kontejneru použitý v následujícím příkazu rozhraní příkazového řádku název úložiště.

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

Další kroky

Vytvoření a použití služby Azure Container Instance