Criar contentores para reutilização

Utilize estas receitas de contentor para criar contentores de IA do Azure que podem ser reutilizados. Os contentores podem ser criados com algumas ou todas as definições de configuração para que não sejam necessários quando o contentor é iniciado.

Assim que tiver esta nova camada de contentor (com definições) e a tiver testado localmente, pode armazenar o contentor num registo de contentor. Quando o contentor for iniciado, apenas precisará das definições que não estão atualmente armazenadas no contentor. O contentor do registo privado fornece espaço de configuração para transmitir essas definições.

Sintaxe de execução do Docker

Todos os docker run exemplos neste documento assumem uma consola do Windows com um ^ caráter de continuação de linha. Considere o seguinte para sua própria utilização:

  • Não altere a ordem dos argumentos, a menos que esteja muito familiarizado com os contentores do Docker.
  • Se estiver a utilizar um sistema operativo diferente do Windows ou uma consola diferente da consola do Windows, utilize a consola/terminal correta, a sintaxe da pasta para montagens e o caráter de continuação de linha para a consola e o sistema. Uma vez que o contentor dos serviços de IA do Azure é um sistema operativo Linux, a montagem de destino utiliza uma sintaxe de pasta de estilo Linux.
  • docker run Os exemplos utilizam o diretório fora da c: unidade para evitar conflitos de permissões no Windows. Se precisar de utilizar um diretório específico como diretório de entrada, poderá ter de conceder a permissão do serviço docker.

Não armazenar definições de configuração na imagem

Os comandos de exemplo docker run para cada serviço não armazenam quaisquer definições de configuração no contentor. Quando inicia o contentor a partir de uma consola ou serviço de registo, essas definições de configuração têm de ser transmitidas. O contentor do registo privado fornece espaço de configuração para transmitir essas definições.

Reutilizar receita: armazenar todas as definições de configuração com o contentor

Para armazenar todas as definições de configuração, crie uma Dockerfile com essas definições.

Problemas com esta abordagem:

  • O novo contentor tem um nome e etiqueta separados do contentor original.
  • Para alterar estas definições, terá de alterar os valores do Dockerfile, reconstruir a imagem e voltar a publicar no seu registo.
  • Se alguém obtiver acesso ao seu registo de contentor ou ao seu anfitrião local, pode executar o contentor e utilizar os pontos finais dos serviços do Azure AI.
  • Se o serviço de IA do Azure que está a utilizar não necessitar de montagens de entrada, não adicione as COPY linhas ao dockerfile.

Crie o Dockerfile, extraia do contentor de serviços do Azure AI existente que pretende utilizar e, em seguida, utilize comandos do Docker no Dockerfile para definir ou solicitar informações de que o contentor precisa.

Este exemplo:

  • Define o ponto final de faturação a {BILLING_ENDPOINT} partir da chave de ambiente do anfitrião com ENV.
  • Define a chave de API de faturação a {ENDPOINT_KEY} partir da chave de ambiente do anfitrião com "ENV.

Reutilizar receita: armazenar as definições de faturação com o contentor

Este exemplo mostra como criar o contentor de sentimentos do serviço Idioma a partir de um Dockerfile.

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

Crie e execute o contentor localmente ou a partir do seu contentor de registo privado , conforme necessário.

Reutilizar receita: armazenar definições de faturação e montagem com contentor

Este exemplo mostra como utilizar Language Understanding, guardando a faturação e os modelos do Dockerfile.

  • Copia o ficheiro de modelo Language Understanding (LUIS) do sistema de ficheiros do anfitrião com COPY.
  • O contentor luis suporta mais do que um modelo. Se todos os modelos estiverem armazenados na mesma pasta, todos precisam de uma COPY instrução.
  • Execute o ficheiro docker a partir do elemento principal relativo do diretório de entrada do modelo. Para o exemplo seguinte, execute os docker build comandos e docker run a partir do elemento principal relativo de /input. O primeiro /input no COPY comando é o diretório do computador anfitrião. O segundo /input é o diretório do contentor.
FROM <container-registry>/<cognitive-service-container-name>:<tag>
ENV billing={BILLING_ENDPOINT}
ENV apikey={ENDPOINT_KEY}
ENV EULA=accept
COPY /input /input

Crie e execute o contentor localmente ou a partir do seu contentor de registo privado , conforme necessário.

Como utilizar o contentor no seu anfitrião local

Para criar o ficheiro do Docker, substitua <your-image-name> pelo novo nome da imagem e, em seguida, utilize:

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

Para executar a imagem e removê-la quando o contentor parar (--rm):

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

Como adicionar um contentor ao registo privado

Siga estes passos para utilizar o Dockerfile e colocar a nova imagem no seu registo de contentor privado.

  1. Crie um Dockerfile com o texto da receita de reutilização. A Dockerfile não tem uma extensão.

  2. Substitua quaisquer valores entre parênteses angulares pelos seus próprios valores.

  3. Crie o ficheiro numa imagem na linha de comandos ou no terminal com o seguinte comando. Substitua os valores entre parênteses angulares, <>, pelo seu próprio nome de contentor e etiqueta.

    A opção de etiqueta, -t, é uma forma de adicionar informações sobre o que alterou para o contentor. Por exemplo, um nome de contentor de modified-LUIS indica que o contentor original foi colocado em camadas. Um nome de etiqueta de with-billing-and-model indica como o contentor Language Understanding (LUIS) foi modificado.

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Inicie sessão na CLI do Azure a partir de uma consola. Este comando abre um browser e requer autenticação. Depois de autenticado, pode fechar o browser e continuar a trabalhar na consola do .

    az login
    
  5. Inicie sessão no seu registo privado com a CLI do Azure a partir de uma consola.

    Substitua os valores entre parênteses angulares, <my-registry>, pelo seu próprio nome de registo.

    az acr login --name <my-registry>
    

    Também pode iniciar sessão com o início de sessão do Docker se lhe for atribuído um principal de serviço.

    docker login <my-registry>.azurecr.io
    
  6. Identifique o contentor com a localização do registo privado. Substitua os valores entre parênteses angulares, <my-registry>, pelo seu próprio nome de registo.

    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 não utilizar um nome de etiqueta, latest está implícito.

  7. Envie a nova imagem para o seu registo de contentor privado. Quando vir o seu registo de contentor privado, o nome do contentor utilizado no seguinte comando da CLI será o nome do repositório.

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

Passos seguintes

Criar e utilizar o Azure Container Instance