Back to Blog
2 min read

Azure Container Instances: Serverless Containers

Azure Container Instances (ACI) runs containers without managing infrastructure. It’s the fastest way to run a container in Azure.

Quick Deployment

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-helloworld \
    --dns-name-label mydemo \
    --ports 80

Container running in seconds.

Use Cases

1. Batch Processing

# Run a data processing job
az container create \
    --resource-group batch-rg \
    --name data-processor \
    --image myregistry.azurecr.io/data-processor:latest \
    --restart-policy Never \
    --environment-variables \
        INPUT_BLOB="https://storage/input/data.csv" \
        OUTPUT_BLOB="https://storage/output/result.csv"

2. Build Agents

# Azure DevOps pipeline with ACI
pool:
  vmImage: 'ubuntu-latest'
steps:
  - task: AzureCLI@2
    inputs:
      azureSubscription: 'MySubscription'
      scriptType: 'bash'
      scriptLocation: 'inlineScript'
      inlineScript: |
        az container create \
          --resource-group build-rg \
          --name build-$(Build.BuildId) \
          --image myregistry.azurecr.io/build-agent:latest \
          --restart-policy Never

3. Sidecar Containers

apiVersion: '2019-12-01'
location: eastus
type: Microsoft.ContainerInstance/containerGroups
properties:
  containers:
    - name: main-app
      properties:
        image: myapp:latest
        ports: [{port: 80}]
    - name: log-shipper
      properties:
        image: fluent/fluentd:latest
        volumeMounts: [{name: logs, mountPath: /var/log}]
  volumes:
    - name: logs
      emptyDir: {}

Limitations

  • No auto-scaling (use AKS for that)
  • Maximum 4 vCPUs, 16 GB RAM per container
  • Ephemeral by default (use Azure Files for persistence)

ACI is perfect for short-lived, burst workloads where Kubernetes would be overkill.

Michael John Peña

Michael John Peña

Senior Data Engineer based in Sydney. Writing about data, cloud, and technology.