Bird
Raised Fist0
Azurecloud~5 mins

Container services comparison in Azure - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Running apps in containers helps keep them neat and easy to move. Azure offers different container services to run your apps smoothly without managing servers yourself.
When you want to run a simple container app quickly without managing servers.
When you need to run many containers that can grow or shrink automatically.
When you want to run containers alongside other Azure services with easy integration.
When you want to manage container clusters with full control over scaling and updates.
When you want to run containers on virtual machines you manage yourself.
Commands
This command creates a simple Azure Container Instance to run a container quickly without managing servers.
Terminal
az container create --resource-group example-group --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label mycontainerexample --ports 80
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-group/providers/Microsoft.ContainerInstance/containerGroups/mycontainer", "location": "eastus", "name": "mycontainer", "properties": { "containers": [ { "name": "mycontainer", "properties": { "image": "mcr.microsoft.com/azuredocs/aci-helloworld", "ports": [ { "port": 80 } ], "resources": { "requests": { "cpu": 1.0, "memoryInGb": 1.5 } }, "instanceView": { "state": "Running" } } } ], "ipAddress": { "dnsNameLabel": "mycontainerexample", "ports": [ { "port": 80, "protocol": "TCP" } ], "type": "Public" }, "provisioningState": "Succeeded" }, "type": "Microsoft.ContainerInstance/containerGroups" }
--resource-group - Specifies the Azure resource group to use
--image - Specifies the container image to run
--dns-name-label - Creates a public DNS name for the container
This command creates an Azure Kubernetes Service cluster with two nodes for managing container clusters with scaling and updates.
Terminal
az aks create --resource-group example-group --name myAKSCluster --node-count 2 --enable-managed-identity --generate-ssh-keys
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-group/providers/Microsoft.ContainerService/managedClusters/myAKSCluster", "location": "eastus", "name": "myAKSCluster", "properties": { "provisioningState": "Succeeded", "kubernetesVersion": "1.26.0", "agentPoolProfiles": [ { "count": 2, "name": "nodepool1", "vmSize": "Standard_DS2_v2" } ] }, "type": "Microsoft.ContainerService/managedClusters" }
--node-count - Sets the number of nodes in the cluster
--enable-managed-identity - Enables secure identity management for the cluster
This command downloads the access credentials to connect to the AKS cluster using kubectl.
Terminal
az aks get-credentials --resource-group example-group --name myAKSCluster
Expected OutputExpected
Merged "myAKSCluster" as current context in /home/user/.kube/config
--resource-group - Specifies the resource group of the AKS cluster
--name - Specifies the AKS cluster name
This command lists the nodes in the AKS cluster to verify the cluster is running and nodes are ready.
Terminal
kubectl get nodes
Expected OutputExpected
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 5m v1.26.0 aks-nodepool1-12345678-vmss000001 Ready agent 5m v1.26.0
Key Concept

If you remember nothing else from this pattern, remember: Azure Container Instances are for quick single containers, while Azure Kubernetes Service is for managing many containers with scaling and control.

Common Mistakes
Trying to use Azure Container Instances for complex multi-container apps needing scaling.
ACI is designed for simple, single-container apps and does not support advanced orchestration.
Use Azure Kubernetes Service (AKS) for multi-container apps that need scaling and orchestration.
Not downloading AKS credentials before running kubectl commands.
Without credentials, kubectl cannot connect to the AKS cluster and commands fail.
Run 'az aks get-credentials' to configure kubectl access before managing the cluster.
Summary
Use 'az container create' to run a quick container with Azure Container Instances.
Use 'az aks create' to set up a Kubernetes cluster for managing many containers.
Download AKS credentials with 'az aks get-credentials' before using kubectl to manage the cluster.
Use 'kubectl get nodes' to check the status of your AKS cluster nodes.

Practice

(1/5)
1. Which Azure container service is best for quickly running a single container without managing servers?
easy
A. Azure Container Apps
B. Azure Kubernetes Service (AKS)
C. Azure App Service for Containers
D. Azure Container Instances (ACI)

Solution

  1. Step 1: Understand the purpose of Azure Container Instances

    ACI is designed for running containers quickly without managing servers or clusters.
  2. Step 2: Compare with other services

    AKS is for orchestrating many containers, App Service is for web apps, and Container Apps are for serverless microservices.
  3. Final Answer:

    Azure Container Instances (ACI) -> Option D
  4. Quick Check:

    Quick single container without servers = ACI [OK]
Hint: Quick single container? Pick ACI for no server hassle [OK]
Common Mistakes:
  • Confusing AKS with ACI for simple container runs
  • Choosing App Service for non-web app containers
  • Thinking Container Apps are for quick single containers
2. Which syntax correctly describes Azure Kubernetes Service (AKS)?
easy
A. Simple web app hosting with container support
B. Managed Kubernetes cluster for container orchestration
C. Serverless container hosting without cluster management
D. Event-driven microservices with automatic scaling

Solution

  1. Step 1: Identify AKS features

    AKS provides managed Kubernetes clusters to orchestrate many containers.
  2. Step 2: Match features to options

    Managed Kubernetes cluster for container orchestration matches AKS; A describes App Service, B describes ACI, D describes Container Apps.
  3. Final Answer:

    Managed Kubernetes cluster for container orchestration -> Option B
  4. Quick Check:

    AKS = Managed Kubernetes cluster [OK]
Hint: AKS means managed Kubernetes cluster orchestration [OK]
Common Mistakes:
  • Mixing AKS with serverless container hosting
  • Confusing App Service with AKS
  • Thinking Container Apps are AKS
3. Given this scenario: You want to deploy a web app using containers with minimal infrastructure management. Which Azure service will you use?
medium
A. Azure App Service for Containers
B. Azure Kubernetes Service
C. Azure Container Instances
D. Azure Container Apps

Solution

  1. Step 1: Understand the scenario requirements

    The need is for a web app using containers with minimal infrastructure management.
  2. Step 2: Match service to scenario

    App Service for Containers is designed for easy web app deployment with container support and minimal management.
  3. Final Answer:

    Azure App Service for Containers -> Option A
  4. Quick Check:

    Web app + containers + minimal management = App Service [OK]
Hint: Web app + containers + easy = App Service for Containers [OK]
Common Mistakes:
  • Choosing AKS for simple web app deployment
  • Using ACI for web apps needing scaling
  • Confusing Container Apps with App Service
4. You deployed a container app but it does not scale automatically on events. Which Azure container service should you check if you want serverless event-driven scaling?
medium
A. Azure Container Instances
B. Azure App Service for Containers
C. Azure Container Apps
D. Azure Kubernetes Service

Solution

  1. Step 1: Identify the scaling requirement

    The app needs automatic scaling triggered by events (serverless event-driven).
  2. Step 2: Match service with event-driven scaling

    Azure Container Apps supports serverless microservices with event-driven automatic scaling.
  3. Final Answer:

    Azure Container Apps -> Option C
  4. Quick Check:

    Event-driven serverless scaling = Container Apps [OK]
Hint: Event-driven auto scale? Use Container Apps [OK]
Common Mistakes:
  • Expecting ACI to auto scale on events
  • Using AKS without configuring autoscaling
  • Confusing App Service with event-driven scaling
5. You need to run multiple microservices that must communicate securely, scale automatically on demand, and you want to avoid managing Kubernetes clusters. Which Azure container service fits best?
hard
A. Azure Container Apps
B. Azure Container Instances (ACI)
C. Azure Kubernetes Service (AKS)
D. Azure App Service for Containers

Solution

  1. Step 1: Analyze requirements

    Multiple microservices need secure communication and automatic scaling without managing Kubernetes clusters.
  2. Step 2: Evaluate service options

    AKS requires cluster management, ACI is for single containers, App Service is for web apps. Container Apps provide serverless microservices with secure communication and auto scaling without cluster management.
  3. Final Answer:

    Azure Container Apps -> Option A
  4. Quick Check:

    Microservices + secure + auto scale + no cluster = Container Apps [OK]
Hint: Microservices + no cluster + auto scale = Container Apps [OK]
Common Mistakes:
  • Choosing AKS despite cluster management requirement
  • Using ACI for multiple microservices
  • Confusing App Service with microservices orchestration