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: json('decimal-as-string')
}
requests: {
cpu: int
gpu: {
count: int
sku: 'string'
}
memoryInGB: json('decimal-as-string')
}
}
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) Character limit: 1-63 Valid characters: Lowercase letters, numbers, and hyphens. Can't start or end with hyphen. Consecutive hyphens aren't allowed. |
| 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. To specify a decimal value, use the json() function. | int or json decimal |
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. To specify a decimal value, use the json() function. | int or json decimal (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 |
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 |
This template creates a WordPress site on Container Instance |
| Create a WordPress site in a virtual network |
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 - BC with SQL Server and IIS |
Deploy a single Windows container with a fully featured self-contained Microsoft Dynamics 365 Business Central environment on Azure Container Instances. |
| Front Door with Container Instances and Application Gateway |
This template creates a Front Door Standard/Premium with a container group and Application Gateway. |
| Front Door Standard/Premium with Azure Container Instances |
This template creates a Front Door Standard/Premium with a container group. |
| Azure Container Instances - container with health probe |
Deploy a Linux container that has a health probe using Azure Container Instances. |
| Azure Container Instances - Linux container with public IP |
Deploy a single Linux container accessible via a public IP using Azure Container Instances. |
| Azure Container Instances - container with secure envVar |
Deploy a Linux container that has a secure environment variable using Azure Container Instances. |
| Azure Container Instances - Linux container with emptyDir |
Deploy two Linux containers that share an emptyDir volume using Azure Container Instances. |
| Azure Container Instances - Linux container with gitRepo |
Deploy a Linux container that uses an gitRepo volume using Azure Container Instances. |
| Azure Container Instances - container with secrets |
Deploy a Linux container that has a secret volume using Azure Container Instances. |
| Create an on-demand SFTP Server with persistent storage |
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI). |
| On-demand SFTP Server using an existing storage account |
This template demonstrates an on-demand SFTP server using an Azure Container Instance (ACI). |
| Create a Storage Account File Share via Containers |
This template creates a storage account and a file share via azure-cli in a Container Instance |
| UDP Container in ACI |
This templates creates an ACI resource and exposes a container through UDP |
| Azure Container Instances - VNet |
Deploy a container instance into an Azure virtual network. |