In one sentence. A container is an application packed together with everything it needs, so it runs identically on any machine with a container engine. Azure gives you a private shelf to store the packed images (Container Registry), a place to run one quickly for a job (Container Instances), and a place to run web services that scale on their own (Container Apps). Kubernetes (AKS) is the heavy-duty option and is only mentioned for contrast.
| Service | Create it | Settings you choose | Scaling | Pick when |
|---|---|---|---|---|
| Azure Container Registry (ACR) | Container registries › + Create; SKU Basic / Standard / Premium | Admin user (off by default; prefer managed identity or service principal). Premium adds geo-replication, private link, content trust. ACR Tasks can build the image in the cloud. | n/a | You need somewhere private to keep images |
| Azure Container Instances (ACI) | Container instances › + Create or az container create | Image, CPU (e.g. 1), memory (e.g. 1.5 GB), restart policy Always / OnFailure / Never, environment variables, public IP with DNS label or a VNet, an Azure Files share as a volume for files that must survive | None. You set the size; it does not add copies | A batch job, a quick test, a small always-on tool |
| Azure Container Apps | Container Apps › + Create inside a Container Apps environment (shared VNet and Log Analytics) | Ingress external or internal; revisions (each deploy is a version; split traffic 90/10 between two); scale rules on HTTP concurrency, CPU, memory, or an event source such as queue length (KEDA); min and max replicas, min 0 = scale to zero | Automatic, 0 to many | APIs and background workers that need autoscale without running Kubernetes |
| AKS | Full Kubernetes cluster | Node pools, kubectl | Cluster and pod autoscalers | Contrast only |
az acr login --name contosoacr
docker tag app:1 contosoacr.azurecr.io/app:1
docker push contosoacr.azurecr.io/app:1
az container create -g RG1 -n nightly --image contosoacr.azurecr.io/app:1 --cpu 1 --memory 1.5 --restart-policy OnFailure --azure-file-volume-share-name output --azure-file-volume-mount-path /out
Trap wording. "Single container, minimal setup, persistent files" = ACI + Azure Files volume. "Scale to zero / scale on queue length / traffic split between versions" = Container Apps. "Replicate images to several regions" = ACR Premium.