Exercício: Criar e executar uma imagem de contêiner usando as Tarefas do Registro de Contêiner do Azure
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
Entre no portal do Azure e abra o Cloud Shell.
Quando o shell abrir, selecione o ambiente Bash .
Criar um Azure Container Registry
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>
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.
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
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 asample/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
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
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
Execute a
sample/hello-world:v1
imagem de contêiner do seu registro de contêiner usando oaz 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, mascmd
suporta outrosdocker run
parâmetros ou até mesmo outrosdocker
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