Exercício: Criar e executar uma imagem de contêiner usando as Tarefas do Registro de Contêiner do Azure

Concluído

Neste exercício, você usa tarefas ACR para executar as seguintes ações:

  • Criar um registo de contentor do Azure Container Registry (ACR)
  • Criar e enviar imagem por push a partir de um Dockerfile
  • Verificar os resultados
  • Executar a imagem no ACR

Pré-requisitos

  • Uma conta do Azure com uma assinatura ativa. Se ainda não tiver uma, pode inscrever-se numa avaliação gratuita em https://azure.com/free.

Entre no Azure e inicie o Cloud Shell

  1. Entre no portal do Azure e abra o Cloud Shell.

    A localização do botão de inicialização do Cloud Shell.

  2. Quando o shell abrir, selecione o ambiente Bash .

    Selecionando o ambiente Bash.

Criar um Azure Container Registry

  1. Crie um grupo de recursos para o Registro. Substitua <myLocation> no comando a seguir por um local perto de você.

    az group create --name az204-acr-rg --location <myLocation>
    
  2. Crie um registro de contêiner básico. O nome do registo tem de ser exclusivo no Azure e pode incluir entre 5 a 50 carateres alfanuméricos. Substitua <myContainerRegistry> no comando a seguir por um valor exclusivo.

    az acr create --resource-group az204-acr-rg \
        --name <myContainerRegistry> --sku Basic
    

    Nota

    O comando cria um Registro Básico , uma opção de custo otimizado para desenvolvedores que aprendem sobre o Registro de Contêiner do Azure.

Criar e enviar imagem por push a partir de um Dockerfile

Agora, use o Registro de Contêiner do Azure para criar e enviar por push uma imagem com base em um Dockerfile local.

  1. Crie, ou navegue, para um diretório local e, em seguida, use o seguinte comando para criar o Dockerfile. O Dockerfile contém uma única linha que faz referência à hello-world imagem hospedada no Microsoft Container Registry.

    echo FROM mcr.microsoft.com/hello-world > Dockerfile
    
  2. Execute o az acr build comando, que cria a imagem e, depois que a imagem é criada com êxito, envia-a para o seu registro. Substitua <myContainerRegistry> pelo nome usado anteriormente.

    az acr build --image sample/hello-world:v1  \
        --registry <myContainerRegistry> \
        --file Dockerfile .
    

    A seguir está uma amostra abreviada da saída do comando anterior mostrando as últimas linhas com os resultados finais. Você pode ver no repository campo a sample/hello-word imagem está listada.

    - image:
        registry: <myContainerRegistry>.azurecr.io
        repository: sample/hello-world
        tag: v1
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      runtime-dependency:
        registry: mcr.microsoft.com
        repository: hello-world
        tag: latest
        digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
      git: {}
    
    
    Run ID: cf1 was successful after 11s
    

Verificar os resultados

  1. Use o az acr repository list comando para listar os repositórios em seu registro. Substitua <myContainerRegistry> pelo nome usado anteriormente.

    az acr repository list --name <myContainerRegistry> --output table
    

    Saída:

    Result
    ----------------
    sample/hello-world
    
  2. Use o az acr repository show-tags comando para listar as tags no repositório sample/hello-world . Substitua <myContainerRegistry> pelo nome usado anteriormente.

    az acr repository show-tags --name <myContainerRegistry> \
        --repository sample/hello-world --output table
    

    Saída:

    Result
    --------
    v1
    

Executar a imagem no ACR

  1. Execute a sample/hello-world:v1 imagem de contêiner do seu registro de contêiner usando o az acr run comando. O exemplo a seguir usa $Registry para especificar o registro onde você executa o comando. Substitua <myContainerRegistry> pelo nome usado anteriormente.

    az acr run --registry <myContainerRegistry> \
        --cmd '$Registry/sample/hello-world:v1' /dev/null
    

    O cmd parâmetro neste exemplo executa o contêiner em sua configuração padrão, mas cmd suporta outros docker run parâmetros ou até mesmo outros docker comandos.

    A saída de exemplo a seguir é encurtada:

    Packing source code into tar to upload...
    Uploading archived source code from '/tmp/run_archive_ebf74da7fcb04683867b129e2ccad5e1.tar.gz'...
    Sending context (1.855 KiB) to registry: mycontainerre...
    Queued a run with ID: cab
    Waiting for an agent...
    2019/03/19 19:01:53 Using acb_vol_60e9a538-b466-475f-9565-80c5b93eaa15 as the home volume
    2019/03/19 19:01:53 Creating Docker network: acb_default_network, driver: 'bridge'
    2019/03/19 19:01:53 Successfully set up Docker network: acb_default_network
    2019/03/19 19:01:53 Setting up Docker configuration...
    2019/03/19 19:01:54 Successfully set up Docker configuration
    2019/03/19 19:01:54 Logging in to registry: mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Successfully logged into mycontainerregistry008.azurecr.io
    2019/03/19 19:01:55 Executing step ID: acb_step_0. Working directory: '', Network: 'acb_default_network'
    2019/03/19 19:01:55 Launching container with name: acb_step_0
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    2019/03/19 19:01:56 Successfully executed container: acb_step_0
    2019/03/19 19:01:56 Step ID: acb_step_0 marked as successful (elapsed time in seconds: 0.843801)
    
    Run ID: cab was successful after 6s
    

Clean up resources (Limpar recursos)

Quando não for mais necessário, você poderá usar o az group delete comando para remover o grupo de recursos, o registro de contêiner e as imagens de contêiner armazenadas lá.

az group delete --name az204-acr-rg --no-wait