Partilhar via


Criar contentores para reutilização

Use essas receitas de contêiner para criar contêineres de IA do Azure que podem ser reutilizados. Os contêineres podem ser criados com algumas ou todas as definições de configuração para que não sejam necessários quando o contêiner for iniciado.

Depois de ter essa nova camada de contêiner (com configurações) e testá-la localmente, você pode armazenar o contêiner em um registro de contêiner. Quando o contêiner for iniciado, ele precisará apenas das configurações que não estão atualmente armazenadas no contêiner. O contêiner de registro privado fornece espaço de configuração para você passar essas configurações.

Sintaxe de execução do Docker

Todos os docker run exemplos neste documento assumem um console do Windows com um caractere de continuação de ^ linha. Considere o seguinte para seu próprio uso:

  • Não altere a ordem dos argumentos, a menos que você esteja muito familiarizado com contêineres docker.
  • Se estiver a utilizar um sistema operativo diferente do Windows ou uma consola diferente da consola Windows, utilize a consola/terminal correta, a sintaxe da pasta para montagens e o carácter de continuação de linha para a consola e o sistema. Como o contêiner de serviços de IA do Azure é um sistema operacional Linux, a montagem de destino usa uma sintaxe de pasta no estilo Linux.
  • docker run exemplos usam o diretório fora da c: unidade para evitar quaisquer conflitos de permissão no Windows. Se você precisar usar um diretório específico como o diretório de entrada, talvez seja necessário 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 nenhuma definição de configuração no contêiner. Quando você inicia o contêiner a partir de um console ou serviço de registro, essas definições de configuração precisam passar. O contêiner de registro privado fornece espaço de configuração para você passar essas configurações.

Receita de reutilização: armazene todas as definições de configuração com o recipiente

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

Problemas com esta abordagem:

  • O novo contêiner tem um nome e uma tag separados do contêiner original.
  • Para alterar essas configurações, você terá que alterar os valores do Dockerfile, reconstruir a imagem e publicar novamente no seu registro.
  • Se alguém tiver acesso ao seu registro de contêiner ou ao seu host local, poderá executar o contêiner e usar os pontos de extremidade dos serviços de IA do Azure.
  • Se o serviço de IA do Azure que você está usando não exigir montagens de entrada, não adicione as COPY linhas ao seu Dockerfile.

Crie o Dockerfile, extraindo do contêiner de serviços de IA do Azure existente que você deseja usar, e use os comandos docker no Dockerfile para definir ou obter informações de que o contêiner precisa.

Este exemplo:

  • Define o ponto de extremidade de faturamento, {BILLING_ENDPOINT} a partir da chave de ambiente do host usando ENVo .
  • Define a chave de API de faturamento, {ENDPOINT_KEY} a partir da chave de ambiente do host usando 'ENV.

Reutilizar receita: armazenar configurações de faturamento com contêiner

Este exemplo mostra como criar o contêiner de sentimento do serviço Language 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 contêiner localmente ou a partir do seu contêiner de registro privado, conforme necessário.

Receita de reutilização: armazene as configurações de faturamento e montagem com o contêiner

Este exemplo mostra como usar o Language Understanding, salvando o faturamento e os modelos do Dockerfile.

  • Copia o arquivo de modelo LUIS (Language Understanding) do sistema de arquivos do host usando COPYo .
  • O contentor LUIS suporta mais do que um modelo. Se todos os modelos estiverem armazenados na mesma pasta, todos precisarão de uma COPY instrução.
  • Execute o arquivo docker a partir do pai relativo do diretório de entrada do modelo. Para o exemplo a seguir, execute os docker build comandos e docker run do pai relativo do /input. O primeiro /input no COPY comando é o diretório do computador host. O segundo /input é o diretório do contêiner.
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 contêiner localmente ou a partir do seu contêiner de registro privado, conforme necessário.

Como usar o contêiner em seu host local

Para criar o arquivo do Docker, substitua <your-image-name> pelo novo nome da imagem e use:

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

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

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

Como adicionar contêiner ao registro privado

Siga estas etapas para usar o Dockerfile e colocar a nova imagem em seu registro de contêiner 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 colchetes angulares pelos seus próprios valores.

  3. Crie o arquivo em uma imagem na linha de comando ou terminal, usando o seguinte comando. Substitua os valores entre colchetes angulares, <>, pelo seu próprio nome e tag do contêiner.

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

    docker build -t <your-new-container-name>:<your-new-tag-name> .
    
  4. Entre na CLI do Azure a partir de um console. Este comando abre um navegador e requer autenticação. Uma vez autenticado, pode fechar o navegador e continuar a trabalhar na consola.

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

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

    az acr login --name <my-registry>
    

    Você também pode entrar com o login do docker se lhe for atribuída uma entidade de serviço.

    docker login <my-registry>.azurecr.io
    
  6. Marque o contêiner com o local do registro privado. Substitua os valores entre colchetes 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 você não usar um nome de tag, latest estará implícito.

  7. Envie a nova imagem para seu registro de contêiner privado. Quando você visualiza seu registro de contêiner privado, o nome do contêiner usado no comando da CLI a seguir será o nome do repositório.

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

Próximos passos

Criar e usar a Instância de Contêiner do Azure