Creare contenitori per il riutilizzo

Usare queste ricette del contenitore per creare contenitori di Intelligenza artificiale di Azure che possono essere riutilizzati. I contenitori possono essere compilati con alcune o tutte le impostazioni di configurazione in modo che non siano necessarie all'avvio del contenitore.

Dopo aver ottenuto questo nuovo livello di contenitore (con le impostazioni) ed è stato testato in locale, è possibile archiviare il contenitore in un registro contenitori. Al momento dell'avvio del contenitore, sarà necessario solo quelle impostazioni che non sono attualmente archiviate nel contenitore. Il contenitore del Registro di sistema privato offre spazio di configurazione per passare tali impostazioni.

Sintassi di esecuzione Docker

Tutti gli docker run esempi in questo documento presuppongono una console di Windows con un ^ carattere di continuazione riga. Prendere in considerazione quanto segue per l'uso personalizzato:

  • Non modificare l'ordine degli argomenti se non si ha dimestichezza con i contenitori Docker.
  • Se si usa un sistema operativo diverso da Windows o una console diversa dalla console di Windows, usare la console/terminale corretta, la sintassi della cartella per i montaggi e il carattere di continuazione della riga per la console e il sistema. Poiché il contenitore di servizi di intelligenza artificiale di Azure è un sistema operativo Linux, il montaggio di destinazione usa una sintassi della cartella in stile Linux.
  • docker run esempi usano la directory fuori dall'unità c: per evitare eventuali conflitti di autorizzazione in Windows. Se è necessario usare una directory specifica come directory di input, potrebbe essere necessario concedere l'autorizzazione per il servizio Docker.

Archiviare nessuna impostazione di configurazione nell'immagine

I comandi di esempio docker run per ogni servizio non archiviano alcuna impostazione di configurazione nel contenitore. Quando si avvia il contenitore da una console o da un servizio del Registro di sistema, queste impostazioni di configurazione devono essere passate. Il contenitore del Registro di sistema privato offre spazio di configurazione per passare tali impostazioni.

Riusare la ricetta: archiviare tutte le impostazioni di configurazione con il contenitore

Per archiviare tutte le impostazioni di configurazione, creare un oggetto Dockerfile con queste impostazioni.

Problemi relativi a questo approccio:

  • Il nuovo contenitore ha un nome e un tag separati dal contenitore originale.
  • Per modificare queste impostazioni, è necessario modificare i valori del Dockerfile, ricompilare l'immagine e ripubblicare il Registro di sistema.
  • Se un utente ottiene l'accesso al registro contenitori o all'host locale, può eseguire il contenitore e usare gli endpoint dei servizi di intelligenza artificiale di Azure.
  • Se il servizio Di intelligenza artificiale di Azure usato non richiede montaggi di input, non aggiungere le COPY righe al Dockerfile.

Creare Dockerfile, eseguire il pull dal contenitore di servizi di intelligenza artificiale di Azure esistente che si desidera usare, quindi usare i comandi docker nel Dockerfile per impostare o eseguire il pull delle informazioni necessarie per il contenitore.

Questo esempio:

  • Imposta l'endpoint di fatturazione, {BILLING_ENDPOINT} dalla chiave dell'ambiente dell'host usando ENV.
  • Imposta la chiave API di fatturazione, {ENDPOINT_KEY} dalla chiave di ambiente dell'host usando 'ENV.

Riusare la ricetta: archiviare le impostazioni di fatturazione con il contenitore

In questo esempio viene illustrato come creare il contenitore sentiment del servizio lingua da un Dockerfile.

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

Compilare ed eseguire il contenitore in locale o dal contenitore del Registro di sistema privato in base alle esigenze.

Ricetta di riutilizzo: archiviare le impostazioni di fatturazione e montaggio con il contenitore

In questo esempio viene illustrato come usare Language Understanding, salvare la fatturazione e i modelli dal Dockerfile.

  • Copia il file di modello Language Understanding (LUIS) dal file system dell'host usando COPY.
  • Il contenitore LUIS supporta più di un modello. Se tutti i modelli vengono archiviati nella stessa cartella, è necessaria un'istruzione COPY .
  • Eseguire il file docker dal padre relativo della directory di input del modello. Per l'esempio seguente, eseguire i docker build comandi e docker run dall'elemento padre relativo di /input. Il primo /input nel COPY comando è la directory del computer host. Il secondo /input è la directory del contenitore.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Compilare ed eseguire il contenitore in locale o dal contenitore del Registro di sistema privato in base alle esigenze.

Come usare il contenitore nell'host locale

Per compilare il file Docker, sostituire <your-image-name> con il nuovo nome dell'immagine, quindi usare:

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

Per eseguire l'immagine e rimuoverla quando il contenitore si arresta (--rm):

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

Come aggiungere il contenitore al registro privato

Seguire questa procedura per usare Dockerfile e posizionare la nuova immagine nel registro contenitori privati.

  1. Creare un oggetto Dockerfile con il testo dalla ricetta di riutilizzo. Un Dockerfile oggetto non ha un'estensione.

  2. Sostituire tutti i valori nelle parentesi angolari con i propri valori.

  3. Compilare il file in un'immagine nella riga di comando o nel terminale usando il comando seguente. Sostituire i valori nelle parentesi angolari, , <>con il proprio nome del contenitore e il tag.

    L'opzione tag, -t, è un modo per aggiungere informazioni su ciò che è stato modificato per il contenitore. Ad esempio, un nome contenitore di modified-LUIS indica che il contenitore originale è stato a livelli. Un nome tag di with-billing-and-model indica come è stato modificato il contenitore Language Understanding (LUIS).

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Accedere all'interfaccia della riga di comando di Azure da una console. Questo comando apre un browser e richiede l'autenticazione. Dopo l'autenticazione, è possibile chiudere il browser e continuare a funzionare nella console.

    az login
    
  5. Accedere al Registro di sistema privato con l'interfaccia della riga di comando di Azure da una console.

    Sostituire i valori nelle parentesi angolari, , <my-registry>con il proprio nome del Registro di sistema.

    az acr login --name <my-registry>
    

    È anche possibile accedere con l'account di accesso docker se viene assegnata un'entità servizio.

    docker login <my-registry>.azurecr.io
    
  6. Contrassegna il contenitore con il percorso del Registro di sistema privato. Sostituire i valori nelle parentesi angolari, , <my-registry>con il proprio nome del Registro di sistema.

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

    Se non si usa un nome di tag, latest è implicito.

  7. Eseguire il push della nuova immagine nel registro contenitori privati. Quando si visualizza il registro contenitori privati, il nome del contenitore usato nel comando dell'interfaccia della riga di comando seguente sarà il nome del repository.

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

Passaggi successivi

Creare e usare Istanza di Azure Container