Microsoft.ContainerInstance containerGroups 2019-12-01

The containerGroups resource type can be deployed to: Resource groups.

To learn about resource group deployments, see Bicep or ARM template.

Template format

To create a Microsoft.ContainerInstance/containerGroups resource, add the following Bicep or JSON to your template.

resource symbolicname 'Microsoft.ContainerInstance/containerGroups@2019-12-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {}
  }
  properties: {
    containers: [
      {
        name: 'string'
        properties: {
          command: [ 'string' ]
          environmentVariables: [
            {
              name: 'string'
              secureValue: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          livenessProbe: {
            exec: {
              command: [ 'string' ]
            }
            failureThreshold: int
            httpGet: {
              path: 'string'
              port: int
              scheme: 'string'
            }
            initialDelaySeconds: int
            periodSeconds: int
            successThreshold: int
            timeoutSeconds: int
          }
          ports: [
            {
              port: int
              protocol: 'string'
            }
          ]
          readinessProbe: {
            exec: {
              command: [ 'string' ]
            }
            failureThreshold: int
            httpGet: {
              path: 'string'
              port: int
              scheme: 'string'
            }
            initialDelaySeconds: int
            periodSeconds: int
            successThreshold: int
            timeoutSeconds: int
          }
          resources: {
            limits: {
              cpu: int
              gpu: {
                count: int
                sku: 'string'
              }
              memoryInGB: int
            }
            requests: {
              cpu: int
              gpu: {
                count: int
                sku: 'string'
              }
              memoryInGB: int
            }
          }
          volumeMounts: [
            {
              mountPath: 'string'
              name: 'string'
              readOnly: bool
            }
          ]
        }
      }
    ]
    diagnostics: {
      logAnalytics: {
        logType: 'string'
        metadata: {}
        workspaceId: 'string'
        workspaceKey: 'string'
      }
    }
    dnsConfig: {
      nameServers: [ 'string' ]
      options: 'string'
      searchDomains: 'string'
    }
    encryptionProperties: {
      keyName: 'string'
      keyVersion: 'string'
      vaultBaseUrl: 'string'
    }
    imageRegistryCredentials: [
      {
        password: 'string'
        server: 'string'
        username: 'string'
      }
    ]
    initContainers: [
      {
        name: 'string'
        properties: {
          command: [ 'string' ]
          environmentVariables: [
            {
              name: 'string'
              secureValue: 'string'
              value: 'string'
            }
          ]
          image: 'string'
          volumeMounts: [
            {
              mountPath: 'string'
              name: 'string'
              readOnly: bool
            }
          ]
        }
      }
    ]
    ipAddress: {
      dnsNameLabel: 'string'
      ip: 'string'
      ports: [
        {
          port: int
          protocol: 'string'
        }
      ]
      type: 'string'
    }
    networkProfile: {
      id: 'string'
    }
    osType: 'string'
    restartPolicy: 'string'
    sku: 'string'
    volumes: [
      {
        azureFile: {
          readOnly: bool
          shareName: 'string'
          storageAccountKey: 'string'
          storageAccountName: 'string'
        }
        emptyDir: any()
        gitRepo: {
          directory: 'string'
          repository: 'string'
          revision: 'string'
        }
        name: 'string'
        secret: {}
      }
    ]
  }
}

Property values

containerGroups

Name Description Value
type The resource type

For Bicep, set this value in the resource declaration.
'Microsoft.ContainerInstance/containerGroups'
apiVersion The resource api version

For Bicep, set this value in the resource declaration.
'2019-12-01'
name The resource name string (required)
location The resource location. string
tags The resource tags. Dictionary of tag names and values. See Tags in templates
identity Identity for the container group. ContainerGroupIdentity
properties The container group properties ContainerGroupProperties (required)

ContainerGroupIdentity

Name Description Value
type The type of identity used for the container group. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the container group. 'None'
'SystemAssigned'
'SystemAssigned, UserAssigned'
'UserAssigned'
userAssignedIdentities The list of user identities associated with the container group. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. object

ContainerGroupProperties

Name Description Value
containers The containers within the container group. Container[] (required)
diagnostics Container group diagnostic information. ContainerGroupDiagnostics
dnsConfig DNS configuration for the container group. DnsConfiguration
encryptionProperties The container group encryption properties. EncryptionProperties
imageRegistryCredentials The image registry credentials by which the container group is created from. ImageRegistryCredential[]
initContainers The init containers for a container group. InitContainerDefinition[]
ipAddress IP address for the container group. IpAddress
networkProfile Container group network profile information. ContainerGroupNetworkProfile
osType The operating system type required by the containers in the container group. 'Linux'
'Windows'
restartPolicy Restart policy for all containers within the container group.
- Always Always restart
- OnFailure Restart on failure
- Never Never restart
'Always'
'Never'
'OnFailure'
sku The container group SKU. 'Dedicated'
'Standard'
volumes The list of volumes that can be mounted by containers in this container group. Volume[]

Container

Name Description Value
name The user-provided name of the container instance. string (required)
properties The container instance properties. ContainerProperties (required)

ContainerProperties

Name Description Value
command The commands to execute within the container instance in exec form. string[]
environmentVariables The environment variables to set in the container instance. EnvironmentVariable[]
image The name of the image used to create the container instance. string (required)
livenessProbe The container probe, for liveness or readiness ContainerProbe
ports The exposed ports on the container instance. ContainerPort[]
readinessProbe The container probe, for liveness or readiness ContainerProbe
resources The resource requirements. ResourceRequirements (required)
volumeMounts The volume mounts available to the container instance. VolumeMount[]

EnvironmentVariable

Name Description Value
name The name of the environment variable. string (required)
secureValue The value of the secure environment variable. string
value The value of the environment variable. string

ContainerProbe

Name Description Value
exec The container execution command, for liveness or readiness probe ContainerExec
failureThreshold The failure threshold. int
httpGet The container Http Get settings, for liveness or readiness probe ContainerHttpGet
initialDelaySeconds The initial delay seconds. int
periodSeconds The period seconds. int
successThreshold The success threshold. int
timeoutSeconds The timeout seconds. int

ContainerExec

Name Description Value
command The commands to execute within the container. string[]

ContainerHttpGet

Name Description Value
path The path to probe. string
port The port number to probe. int (required)
scheme The scheme. 'http'
'https'

ContainerPort

Name Description Value
port The port number exposed within the container group. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ResourceRequirements

Name Description Value
limits The resource limits. ResourceLimits
requests The resource requests. ResourceRequests (required)

ResourceLimits

Name Description Value
cpu The CPU limit of this container instance. int
gpu The GPU resource. GpuResource
memoryInGB The memory limit in GB of this container instance. int

GpuResource

Name Description Value
count The count of the GPU resource. int (required)
sku The SKU of the GPU resource. 'K80'
'P100'
'V100'

ResourceRequests

Name Description Value
cpu The CPU request of this container instance. int (required)
gpu The GPU resource. GpuResource
memoryInGB The memory request in GB of this container instance. int (required)

VolumeMount

Name Description Value
mountPath The path within the container where the volume should be mounted. Must not contain colon (:). string (required)
name The name of the volume mount. string (required)
readOnly The flag indicating whether the volume mount is read-only. bool

ContainerGroupDiagnostics

Name Description Value
logAnalytics Container group log analytics information. LogAnalytics

LogAnalytics

Name Description Value
logType The log type to be used. 'ContainerInsights'
'ContainerInstanceLogs'
metadata Metadata for log analytics. object
workspaceId The workspace id for log analytics string (required)
workspaceKey The workspace key for log analytics string (required)

DnsConfiguration

Name Description Value
nameServers The DNS servers for the container group. string[] (required)
options The DNS options for the container group. string
searchDomains The DNS search domains for hostname lookup in the container group. string

EncryptionProperties

Name Description Value
keyName The encryption key name. string (required)
keyVersion The encryption key version. string (required)
vaultBaseUrl The keyvault base url. string (required)

ImageRegistryCredential

Name Description Value
password The password for the private registry. string
server The Docker image registry server without a protocol such as "http" and "https". string (required)
username The username for the private registry. string (required)

InitContainerDefinition

Name Description Value
name The name for the init container. string (required)
properties The init container definition properties. InitContainerPropertiesDefinition (required)

InitContainerPropertiesDefinition

Name Description Value
command The command to execute within the init container in exec form. string[]
environmentVariables The environment variables to set in the init container. EnvironmentVariable[]
image The image of the init container. string
volumeMounts The volume mounts available to the init container. VolumeMount[]

IpAddress

Name Description Value
dnsNameLabel The Dns name label for the IP. string
ip The IP exposed to the public internet. string
ports The list of ports exposed on the container group. Port[] (required)
type Specifies if the IP is exposed to the public internet or private VNET. 'Private'
'Public'

Port

Name Description Value
port The port number. int (required)
protocol The protocol associated with the port. 'TCP'
'UDP'

ContainerGroupNetworkProfile

Name Description Value
id The identifier for a network profile. string (required)

Volume

Name Description Value
azureFile The properties of the Azure File volume. Azure File shares are mounted as volumes. AzureFileVolume
emptyDir Any object For Bicep, you can use the any() function.
gitRepo Represents a volume that is populated with the contents of a git repository GitRepoVolume
name The name of the volume. string (required)
secret The secret volume. object

AzureFileVolume

Name Description Value
readOnly The flag indicating whether the Azure File shared mounted as a volume is read-only. bool
shareName The name of the Azure File share to be mounted as a volume. string (required)
storageAccountKey The storage account access key used to access the Azure File share. string
storageAccountName The name of the storage account that contains the Azure File share. string (required)

GitRepoVolume

Name Description Value
directory Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. string
repository Repository URL string (required)
revision Commit hash for the specified revision. string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
SQL Server Always On AG on AKS

Deploy to Azure
This creates a new AKS Cluster and then deploy SQL Server always on availability groups into it using a CNAB Package deployed using Duffle and ACI
Create a WordPress site

Deploy to Azure
This template creates a WordPress site on Container Instance
Create a WordPress site in a virtual network

Deploy to Azure
This template creates a WordPress site on Container Instance in a virtual network. And output a public site FQDN which could access WordPress site.
Azure Container Instances - NAV/BC with SQL Server and IIS

Deploy to Azure
Deploy a single Windows container with a fully featured self-contained Dynamics NAV / Dynamics 365 Business Central environment on Azure Container Instances.
Azure Container Instances - container with health probe

Deploy to Azure
Deploy a Linux container that has a health probe using Azure Container Instances.
Azure Container Instances - Linux container with public IP

Deploy to Azure
Deploy a single Linux container accessible via a public IP using Azure Container Instances.
Azure Container Instances - container with secure envVar

Deploy to Azure
Deploy a Linux container that has a secure environment variable using Azure Container Instances.
Azure Container Instances - Linux container with emptyDir

Deploy to Azure
Deploy two Linux containers that share an emptyDir volume using Azure Container Instances.
Azure Container Instances - Linux container with gitRepo

Deploy to Azure
Deploy a Linux container that uses an gitRepo volume using Azure Container Instances.
Azure Container Instances - container with secrets

Deploy to Azure
Deploy a Linux container that has a secret volume using Azure Container Instances.
Create an on-demand SFTP Server with persistent storage

Deploy to Azure
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI).
On-demand SFTP Server using an existing storage account

Deploy to Azure
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI).
Create a Storage Account File Share via Containers

Deploy to Azure
This template creates a storage account and a file share via azure-cli in a Container Instance
UDP Container in ACI

Deploy to Azure
This templates creates an ACI resource and exposes a container through UDP
Azure Container Instances - VNet

Deploy to Azure
Deploy a container instance into an Azure virtual network.
Front Door with Container Instances and Application Gateway

Deploy to Azure
This template creates a Front Door Standard/Premium (Preview) with a container group and Application Gateway.
Front Door Standard/Premium with Azure Container Instances

Deploy to Azure
This template creates a Front Door Standard/Premium (Preview) with a container group.