Azure Container Instances
Start en containeriseret applikation på få sekunder med ACI uden at administrere servere, konfigurer miljøvariabler og volumemonteringer, og forstå ACI's fakturering.
Azure Container Instances er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad er Azure Container Instances?
Azure Container Instances (ACI) er den hurtigste måde at køre en containeriseret arbejdsbelastning i Azure på uden at administrere servere eller orkestratorer. Du angiver et container-image, og Azure kører det på få sekunder på en delt infrastruktur med flere lejere. ACI er velegnet til kortvarige opgaver, batchjob, build-agenter og hændelsesdrevne arbejdsbelastninger, hvor det ville være unødvendigt krævende at starte en komplet Kubernetes-klynge.
Oprettelse af en containerinstans
Start en ACI-container med en enkelt az container create-kommando. Angiv imaget, ressourcegruppen, CPU og hukommelse. ACI henter imaget, tildeler ressourcer og starter containeren — typisk inden for 5-10 sekunder. Hver containerinstans får et unikt fuldt kvalificeret domænenavn (FQDN), hvis du tildeler en DNS-navneetiket, så den straks kan tilgås fra internettet.
# 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.ioMiljøvariabler og sikre værdier
Send konfiguration til ACI-containere ved hjælp af miljøvariabler, der angives ved oprettelsen. For følsomme værdier som API-nøgler eller adgangskoder skal du bruge sikre miljøvariabler — de vises ikke i Azure-portalen eller CLI-outputtet efter implementeringen, hvilket forhindrer utilsigtet eksponering i logge eller revisionsspor. Sikre værdier er stadig tilgængelige i containeren under kørsel som normale miljøvariabler.
# 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 MyRGACI-fakturering og ressourcetildeling
ACI faktureres pr. sekund baseret på de CPU-kerner og den hukommelse i GB, du tildeler, uden nogen minimumsfaktureringsperiode. Du betaler kun, mens containeren kører — i det øjeblik den stopper, stopper faktureringen. Det gør ACI særdeles omkostningseffektivt til kortvarige arbejdsbelastninger. Du kan tildele mellem 0,1 og 4 CPU-kerner samt 0,1 til 16 GB hukommelse pr. containergroup i understøttede kombinationer.
# 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 16Genstartspolitikker
ACI understøtter tre genstartspolitikker, der styrer containerens adfærd, efter den afsluttes. Always (standard) genstarter containeren, hver gang den afsluttes — velegnet til langvarige tjenester. Never kører containeren én gang og lader den være i en afsluttet tilstand — ideelt til batchjob. OnFailure genstarter kun, når containeren afsluttes med en exitkode, der ikke er nul — nyttigt til mønstre med gentagelse ved fejl.
# 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}'Containergroups: implementeringer med flere containere
En containergroup er en samling containere, der deler livscyklus, netværk og lager — på samme måde som en Kubernetes-pod. Containere i den samme gruppe deler en lokal IP-adresse og et portnavnerum, så de kan kommunikere via localhost. Et almindeligt mønster er en hovedcontainer til applikationen og en sidevognscontainer (f.eks. en logagent eller proxy) i den samme gruppe, defineret med en YAML- eller ARM-skabelon.
# 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.yamlVolumenmonteringer: Azure Files-integration
ACI-containere er som standard tilstandsløse — data, der skrives til containerens filsystem, går tabt, når containeren genstarter. Montér en Azure Files-fildeling som en volumen for at bevare data på tværs af genstarter eller dele data mellem containere i den samme gruppe. Angiv lagerkontonavnet, nøglen og navnet på fildelingen, når du opretter containerinstansen.
# 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 shareGPU-containerinstanser
ACI understøtter GPU-containerinstanser (K80, V100) til ML-inferens, videobehandling og arbejdsbelastninger med videnskabelige beregninger. GPU-instanser er tilgængelige i udvalgte områder og kræver Linux-containere. De faktureres pr. GPU/sekund, hvilket gør dem økonomiske til scenarier med inferens i spidsbelastninger, hvor du starter en GPU-container, kører modellen og straks lukker den ned — meget billigere end en dedikeret GPU-VM, der kører døgnet rundt.
# 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 med virtuelt netværk
Implementér ACI-containergroups i et dedikeret undernet i et VNet for at give dem private IP-adresser og lade dem få adgang til andre VNet-forbundne ressourcer (databaser, VM'er) uden at eksponere dem på internettet. VNet-integreret ACI kræver et dedikeret, delegeret undernet (delegeret til Microsoft.ContainerInstance/containerGroups) og understøtter ikke tildeling af offentlige IP-adresser.
# 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 som en virtuel Kubernetes-node
ACI integreres med AKS som en virtuel node via open source-projektet Virtual Kubelet. Når en AKS-klynge oplever en efterspørgsel i spidsbelastninger, der overstiger VM-nodernes kapacitet, kan Kubernetes planlægge pods på en virtuel ACI-node — og dermed starte ægte ACI-containerinstanser. Det giver ubegrænset skalering i spidsbelastninger uden forudgående klargøring af ekstra VM-noder, og du betaler kun for ACI-beregning i perioden med spidsbelastning.
# 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: ExistsHvornår skal du bruge ACI, AKS eller App Service?
Vælg ACI til kortvarige opgaver, batchjob, CI-build-agenter og engangscontainere, hvor Kubernetes' ekstra kompleksitet er unødvendig. Vælg AKS til langvarige mikrotjenester med flere containere, der kræver tjenesteopdagelse, sundhedstjek, løbende opdateringer og klyngenetværk. Vælg App Service, når du ønsker PaaS-fordele (implementeringsslots, administrerede certifikater og indbygget godkendelse) uden selv at administrere containernetværket.
Hurtigtjek
Test din forståelse af begreberne fra Microsoft Azure Fundamentals (AZ-900) i denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at Azure Container Instances kører containere på få sekunder uden serveradministration og faktureres pr. sekund for CPU og hukommelse, at containergroups lader flere containere dele netværk og lager ligesom en Kubernetes-pod, og at genstartspolitikker (Always, Never, OnFailure) styrer containerens livscyklus efter afslutning. Nu ser vi nærmere på Kubernetes-begreber til Azure.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “Azure Container Instances” gratis?
Ja — hele teksten til “Azure Container Instances” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Azure Container Instances”?
Start en containeriseret applikation på få sekunder med ACI uden at administrere servere, konfigurer miljøvariabler og volumemonteringer, og forstå ACI's fakturering. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Azure Container Instances”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Azure Container Registry
- Azure Container Instances
- Kubernetes-koncepter til Azure
- Udrulning af arbejdsbelastninger på AKS