Exercício: criar e executar uma imagem de contêiner usando as Tarefas do Registro de Contêiner do Azure
Nesse exercício, você usa tarefas do ACR para executar as seguintes ações:
- Criar um Registro de Contêiner do Azure (ACR)
- Criar uma imagem e efetuar push dela de um Dockerfile
- Verifique os resultados
- Executar a imagem no ACR
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Caso ainda não tenha uma assinatura, você pode se inscrever para obter uma avaliação gratuita em https://azure.com/free
Faça logon no Azure e inicie o Cloud Shell
Entre no portal do Azure e abra o Cloud Shell.
Depois que o shell abrir, selecione o ambiente Bash.
Criar um Registro de Contêiner do Azure
Crie um grupo de recursos para o registro. Substitua
<myLocation>
no comando a seguir por um local próximo a você.az group create --name az204-acr-rg --location <myLocation>
Crie um registro de contêiner básico. O nome do registro deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos. Substitua
<myContainerRegistry>
no comando a seguir por um valor exclusivo.az acr create --resource-group az204-acr-rg \ --name <myContainerRegistry> --sku Basic
Observação
O comando cria um registro Básico, uma opção com otimização de custo para os desenvolvedores que estão aprendendo a usar o Registro de Contêiner do Azure.
Criar uma imagem e efetuar push dela de um Dockerfile
Agora, use o Registro de Contêiner do Azure para criar uma imagem com base em um Dockerfile local e enviá-la por push.
Crie ou navegue até um diretório local e use o comando a seguir para criar o Dockerfile. O Dockerfile conterá uma só linha que faz referência à imagem
hello-world
hospedada no Registro de Contêiner da Microsoft.echo FROM mcr.microsoft.com/hello-world > Dockerfile
Execute o comando
az acr build
, que cria a imagem e, depois que ela é criada com êxito, faz o envio dela por push ao registro. Substitua<myContainerRegistry>
pelo nome que foi usado anteriormente.az acr build --image sample/hello-world:v1 \ --registry <myContainerRegistry> \ --file Dockerfile .
A seguir está um exemplo abreviado da saída do comando anterior mostrando as últimas linhas com os resultados finais. Você pode ver no campo
repository
que a imagemsample/hello-word
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
Verifique os resultados
Use o comando
az acr repository list
para listar os repositórios no registro. Substitua<myContainerRegistry>
pelo nome que foi usado anteriormente.az acr repository list --name <myContainerRegistry> --output table
Saída:
Result ---------------- sample/hello-world
Use o comando
az acr repository show-tags
para listar as marcas no repositório de sample/hello-world. Substitua<myContainerRegistry>
pelo nome que foi 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 imagem de contêiner
sample/hello-world:v1
do registro de contêiner usando o comandoaz acr run
. O exemplo a seguir usa$Registry
para especificar o registro em que você executa o comando. Substitua<myContainerRegistry>
pelo nome que foi usado anteriormente.az acr run --registry <myContainerRegistry> \ --cmd '$Registry/sample/hello-world:v1' /dev/null
O parâmetro
cmd
deste exemplo executa o contêiner na configuração padrão, mas ocmd
dá suporte a outros parâmetrosdocker run
ou, até mesmo, a outros comandosdocker
.O seguinte exemplo de saída é abreviado:
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
Limpar os recursos
Quando os recursos não forem mais necessários, você poderá usar o comando az group delete
para remover o grupo de recursos, o registro de contêiner e as imagens de contêiner armazenadas nele.
az group delete --name az204-acr-rg --no-wait