Instâncias de Contêineres do Azure
Inicie uma aplicação conteinerizada em segundos usando ACI, sem gerenciar servidores, configure variáveis de ambiente e montagens de volumes e compreenda a cobrança do ACI.
Instâncias de Contêineres do Azure é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que é o Azure Container Instances?
O Azure Container Instances (ACI) é a maneira mais rápida de executar uma carga de trabalho em contêiner no Azure sem gerenciar servidores ou orquestradores. Você fornece uma imagem de contêiner, e o Azure a executa em segundos em uma infraestrutura compartilhada e multilocatário. O ACI é ideal para tarefas de curta duração, trabalhos em lote, agentes de compilação e cargas de trabalho orientadas por eventos nas quais iniciar um cluster completo do Kubernetes representaria uma sobrecarga desnecessária.
Criação de uma instância de contêiner
Inicie um contêiner do ACI com um único comando az container create. Especifique a imagem, o grupo de recursos, a CPU e a memória. O ACI baixa a imagem, aloca os recursos e inicia o contêiner — normalmente em 5 a 10 segundos. Cada instância de contêiner recebe um nome de domínio totalmente qualificado (FQDN) exclusivo se você atribuir um rótulo de nome DNS, tornando-a imediatamente acessível pela Internet.
# Run an Nginx container accessible from the internet
az container create \
--name my-nginx \
--resource-group MyRG \
--image nginx:latest \
--cpu 1 \
--memory 1 \
--dns-name-label my-nginx-demo \
--ports 80
# Access at: http://my-nginx-demo.<region>.azurecontainer.ioVariáveis de ambiente e valores seguros
Transmita configurações para os contêineres do ACI usando variáveis de ambiente especificadas no momento da criação. Para valores confidenciais, como chaves de API ou senhas, use variáveis de ambiente seguras — elas não são exibidas no portal do Azure nem na saída da CLI após a implantação, o que evita a exposição acidental em registros ou trilhas de auditoria. Os valores seguros continuam acessíveis dentro do contêiner durante a execução como variáveis de ambiente normais.
# Pass regular and secure environment variables
az container create \
--name my-app \
--resource-group MyRG \
--image mycontainerregistry.azurecr.io/myapp:v1.0 \
--environment-variables APP_ENV=production \
--secure-environment-variables \
DATABASE_PASSWORD='super-secret-password' \
API_KEY='my-api-key'
# View logs from the running container
az container logs --name my-app --resource-group MyRGFaturamento e alocação de recursos do ACI
O ACI cobra por segundo, com base nos núcleos de CPU e na quantidade de memória em GB alocados, sem período mínimo de cobrança. Você paga apenas enquanto o contêiner está em execução — no momento em que ele para, a cobrança também é interrompida. Isso torna o ACI extremamente econômico para cargas de trabalho de curta duração. Você pode alocar entre 0,1 e 4 núcleos de CPU e entre 0,1 e 16 GB de memória por grupo de contêineres, em combinações compatíveis.
# Small: 0.5 CPU, 0.5 GB memory
az container create --name small-task --resource-group MyRG \
--image my-batch-image:latest --cpu 0.5 --memory 0.5 \
--restart-policy Never # Don't restart after completion
# Large: 4 CPU, 16 GB memory for intensive tasks
az container create --name ml-inference --resource-group MyRG \
--image ml-model:latest --cpu 4 --memory 16Políticas de reinicialização
O ACI oferece três políticas de reinicialização que controlam o comportamento do contêiner depois que ele é encerrado. Always (padrão) reinicia o contêiner sempre que ele é encerrado — é adequado para serviços de longa duração. Never executa o contêiner uma vez e o deixa em estado encerrado — é ideal para trabalhos em lote. OnFailure reinicia o contêiner somente quando ele é encerrado com um código de saída diferente de zero — é útil para padrões de nova tentativa em caso de erro.
# Batch job: run once, never restart
az container create \
--name data-processor \
--resource-group MyRG \
--image my-batch-image:latest \
--restart-policy Never \
--environment-variables BATCH_DATE=2025-01-01
# Check the container's final state
az container show \
--name data-processor \
--resource-group MyRG \
--query '{state:instanceView.state, exitCode:instanceView.currentState.exitCode}'Grupos de contêineres: implantações com vários contêineres
Um grupo de contêineres é uma coleção de contêineres que compartilham ciclo de vida, rede e armazenamento — de forma semelhante a um Pod do Kubernetes. Os contêineres do mesmo grupo compartilham um endereço IP local e um espaço de nomes de portas, o que permite a comunicação por meio de localhost. Um padrão comum é usar um contêiner para a aplicação principal e outro contêiner auxiliar (por exemplo, um agente de registro ou proxy) no mesmo grupo, definido com um modelo YAML ou ARM.
# multi-container.yaml
apiVersion: '2021-09-01'
location: eastus
name: my-container-group
properties:
containers:
- name: app
properties:
image: myapp:v1.0
ports: [{port: 80}]
resources: {requests: {cpu: 1, memoryInGb: 1}}
- name: log-forwarder
properties:
image: fluent-bit:latest
resources: {requests: {cpu: 0.5, memoryInGb: 0.5}}
osType: Linux
restartPolicy: Always
type: Microsoft.ContainerInstance/containerGroups
# Deploy from YAML
# az container create --resource-group MyRG --file multi-container.yamlMontagens de volume: integração com o Azure Files
Por padrão, os contêineres do ACI não mantêm estado — os dados gravados no sistema de arquivos do contêiner são perdidos quando ele é reiniciado. Monte um compartilhamento do Azure Files como volume para manter os dados entre reinicializações do contêiner ou compartilhá-los entre contêineres do mesmo grupo. Especifique o nome da conta de armazenamento, a chave e o nome do compartilhamento de arquivos ao criar a instância de contêiner.
# Mount an Azure Files share for persistent storage
az container create \
--name stateful-app \
--resource-group MyRG \
--image myapp:v1.0 \
--azure-file-volume-account-name mystorageaccount \
--azure-file-volume-account-key '<storage-account-key>' \
--azure-file-volume-share-name myfileshare \
--azure-file-volume-mount-path /data
# Data written to /data persists in the Azure Files shareInstâncias de contêiner com GPU
O ACI oferece instâncias de contêiner com GPU (K80, V100) para inferência de ML, processamento de vídeo e cargas de trabalho de computação científica. As instâncias com GPU estão disponíveis em regiões selecionadas e exigem contêineres Linux. A cobrança é feita por GPU/segundo, o que as torna econômicas para cenários de inferência em picos, nos quais você inicia um contêiner com GPU, executa o modelo e o encerra imediatamente — muito mais barato do que manter uma VM com GPU dedicada em execução 24 horas por dia, 7 dias por semana.
# Create a GPU-enabled container instance
az container create \
--name gpu-inference \
--resource-group MyRG \
--image my-ml-model:latest \
--gpu-count 1 \
--gpu-sku V100 \
--cpu 4 \
--memory 16 \
--os-type LinuxACI com rede virtual
Implante grupos de contêineres do ACI em uma sub-rede dedicada dentro de uma VNet para atribuir a eles endereços IP privados e permitir que alcancem outros recursos conectados à VNet (bancos de dados, VMs) sem expô-los à Internet. O ACI integrado à VNet exige uma sub-rede dedicada e delegada (delegada a Microsoft.ContainerInstance/containerGroups) e não oferece suporte à atribuição de IP público.
# Create an ACI container in a VNet
az container create \
--name private-task \
--resource-group MyRG \
--image myapp:v1.0 \
--vnet MyVNet \
--subnet ContainerSubnet \
--restart-policy Never
# The container gets a private IP from the subnet CIDR
# It can reach VNet resources (SQL, Redis, VMs) on private IPsACI como nó do Virtual Kubelet
O ACI integra-se ao AKS como um nó virtual por meio do projeto de código aberto Virtual Kubelet. Quando um cluster do AKS enfrenta uma demanda de pico que excede a capacidade de seus nós de VM, o Kubernetes pode agendar Pods em um nó virtual do ACI, iniciando instâncias de contêiner reais do ACI. Isso oferece escalabilidade ilimitada durante picos sem a necessidade de pré-provisionar nós de VM extras, e você paga apenas pela computação do ACI durante o período de pico.
# Enable virtual nodes on an AKS cluster
az aks enable-addons \
--name myAKSCluster \
--resource-group MyRG \
--addons virtual-node \
--subnet-name VirtualNodeSubnet
# Schedule a burst pod on ACI via node selector
# spec:
# nodeSelector:
# kubernetes.io/role: agent
# beta.kubernetes.io/os: linux
# type: virtual-kubelet
# tolerations:
# - key: virtual-kubelet.io/provider
# operator: ExistsQuando usar ACI, AKS ou App Service
Escolha o ACI para tarefas de curta duração, trabalhos em lote, agentes de compilação de CI e contêineres pontuais nos quais a sobrecarga do Kubernetes é desnecessária. Escolha o AKS para microsserviços de longa duração com vários contêineres que exigem descoberta de serviço, verificações de integridade, atualizações graduais e rede de cluster. Escolha o App Service quando quiser as conveniências de uma PaaS (slots de implantação, certificados gerenciados e autenticação integrada) sem gerenciar a rede de contêineres por conta própria.
Verificação rápida
Teste sua compreensão dos conceitos do Microsoft Azure Fundamentals (AZ-900) apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que o Azure Container Instances executa contêineres em segundos sem gerenciamento de servidores, com cobrança por segundo de CPU e memória; os grupos de contêineres permitem que vários contêineres compartilhem rede e armazenamento como um Pod do Kubernetes; e as políticas de reinicialização (Always, Never, OnFailure) controlam o ciclo de vida do contêiner após seu encerramento. A seguir, exploraremos os conceitos do Kubernetes para o Azure.
Perguntas Frequentes
A aula “Instâncias de Contêineres do Azure” é grátis?
Sim — o texto completo de “Instâncias de Contêineres do Azure” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “Instâncias de Contêineres do Azure”?
Inicie uma aplicação conteinerizada em segundos usando ACI, sem gerenciar servidores, configure variáveis de ambiente e montagens de volumes e compreenda a cobrança do ACI. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Instâncias de Contêineres do Azure”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Registro de Contêineres do Azure
- Instâncias de Contêineres do Azure
- Conceitos de Kubernetes para o Azure
- Implantando Cargas de Trabalho no AKS