Container Groups - Create Or Update

Create or update container groups with specified configurations.

HTTP
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerInstance/containerGroups/{containerGroupName}?api-version=2018-04-01

URI Parameters

Name In Required Type Description
containerGroupName
path True

string

The name of the container group.

resourceGroupName
path True

string

The name of the resource group.

subscriptionId
path True

string

Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.

api-version
query True

string

Client API version

Request Body

Name Required Type Description
properties.containers True

Container[]

The containers within the container group.

properties.osType True

OperatingSystemTypes

The operating system type required by the containers in the container group.

location

string

The resource location.

properties.imageRegistryCredentials

ImageRegistryCredential[]

The image registry credentials by which the container group is created from.

properties.ipAddress

IpAddress

The IP address type of the container group.

properties.restartPolicy

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
properties.volumes

Volume[]

The list of volumes that can be mounted by containers in this container group.

tags

object

The resource tags.

Responses

Name Type Description
200 OK

ContainerGroup

OK

201 Created

ContainerGroup

Created - the container group is created.

Security

azure_auth

Azure Active Directory OAuth2 Flow

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation Impersonate your user account

Examples

ContainerGroupsCreateOrUpdate

Sample request

HTTP
PUT https://management.azure.com/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1?api-version=2018-04-01

{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "west us",
  "name": "demo1",
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ports": [
        {
          "protocol": "TCP",
          "port": 80
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1"
    },
    "osType": "Linux",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName",
          "storageAccountKey": "accountKey"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {
          "secretKey1": "SecretValue1InBase64",
          "secretKey2": "SecretValue2InBase64"
        }
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}

Sample response

JSON
{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "WestUs",
  "name": "demo1",
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ip": "10.0.0.1",
      "ports": [
        {
          "port": 80,
          "protocol": "TCP"
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1",
      "fqdn": "dnsnamelabel1.azure-container.io"
    },
    "osType": "Linux",
    "provisioningState": "Succeeded",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {}
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}
JSON
{
  "id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
  "location": "WestUs",
  "name": "demo1",
  "properties": {
    "containers": [
      {
        "name": "demo1",
        "properties": {
          "command": [],
          "environmentVariables": [],
          "image": "nginx",
          "ports": [
            {
              "port": 80
            }
          ],
          "resources": {
            "requests": {
              "cpu": 1,
              "memoryInGB": 1.5
            }
          },
          "volumeMounts": [
            {
              "name": "volume1",
              "mountPath": "/mnt/volume1",
              "readOnly": false
            },
            {
              "name": "volume2",
              "mountPath": "/mnt/volume2",
              "readOnly": false
            },
            {
              "name": "volume3",
              "mountPath": "/mnt/volume3",
              "readOnly": true
            }
          ]
        }
      }
    ],
    "imageRegistryCredentials": [],
    "ipAddress": {
      "ip": "10.0.0.1",
      "ports": [
        {
          "port": 80,
          "protocol": "TCP"
        }
      ],
      "type": "Public",
      "dnsNameLabel": "dnsnamelabel1",
      "fqdn": "dnsnamelabel1.azure-container.io"
    },
    "osType": "Linux",
    "provisioningState": "Succeeded",
    "volumes": [
      {
        "name": "volume1",
        "azureFile": {
          "shareName": "shareName",
          "storageAccountName": "accountName"
        }
      },
      {
        "name": "volume2",
        "emptyDir": {}
      },
      {
        "name": "volume3",
        "secret": {}
      }
    ]
  },
  "type": "Microsoft.ContainerInstance/containerGroups"
}

Definitions

Name Description
AzureFileVolume

The properties of the Azure File volume. Azure File shares are mounted as volumes.

Container

A container instance.

ContainerGroup

A container group.

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet.

ContainerGroupNetworkProtocol

The protocol associated with the port.

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
ContainerNetworkProtocol

The protocol associated with the port.

ContainerPort

The port exposed on the container instance.

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

ContainerState

The container instance state.

EmptyDirVolume

The empty directory volume.

EnvironmentVariable

The environment variable to set within the container instance.

Event

A container group or container instance event.

GitRepoVolume

Represents a volume that is populated with the contents of a git repository

ImageRegistryCredential

Image registry credential.

InstanceView

The instance view of the container group. Only valid in response.

IpAddress

IP address for the container group.

OperatingSystemTypes

The operating system type required by the containers in the container group.

Port

The port exposed on the container group.

ResourceLimits

The resource limits.

ResourceRequests

The resource requests.

ResourceRequirements

The resource requirements.

Volume

The properties of the volume.

VolumeMount

The properties of the volume mount.

AzureFileVolume

The properties of the Azure File volume. Azure File shares are mounted as volumes.

Name Type Description
readOnly

boolean

The flag indicating whether the Azure File shared mounted as a volume is read-only.

shareName

string

The name of the Azure File share to be mounted as a volume.

storageAccountKey

string

The storage account access key used to access the Azure File share.

storageAccountName

string

The name of the storage account that contains the Azure File share.

Container

A container instance.

Name Type Description
name

string

The user-provided name of the container instance.

properties.command

string[]

The commands to execute within the container instance in exec form.

properties.environmentVariables

EnvironmentVariable[]

The environment variables to set in the container instance.

properties.image

string

The name of the image used to create the container instance.

properties.instanceView

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

properties.ports

ContainerPort[]

The exposed ports on the container instance.

properties.resources

ResourceRequirements

The resource requirements of the container instance.

properties.volumeMounts

VolumeMount[]

The volume mounts available to the container instance.

ContainerGroup

A container group.

Name Type Description
id

string

The resource id.

location

string

The resource location.

name

string

The resource name.

properties.containers

Container[]

The containers within the container group.

properties.imageRegistryCredentials

ImageRegistryCredential[]

The image registry credentials by which the container group is created from.

properties.instanceView

InstanceView

The instance view of the container group. Only valid in response.

properties.ipAddress

IpAddress

The IP address type of the container group.

properties.osType

OperatingSystemTypes

The operating system type required by the containers in the container group.

properties.provisioningState

string

The provisioning state of the container group. This only appears in the response.

properties.restartPolicy

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
properties.volumes

Volume[]

The list of volumes that can be mounted by containers in this container group.

tags

object

The resource tags.

type

string

The resource type.

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet.

Value Description
Public

ContainerGroupNetworkProtocol

The protocol associated with the port.

Value Description
TCP
UDP

ContainerGroupRestartPolicy

Restart policy for all containers within the container group.

  • Always Always restart
  • OnFailure Restart on failure
  • Never Never restart
Value Description
Always
Never
OnFailure

ContainerNetworkProtocol

The protocol associated with the port.

Value Description
TCP
UDP

ContainerPort

The port exposed on the container instance.

Name Type Description
port

integer

The port number exposed within the container group.

protocol

ContainerNetworkProtocol

The protocol associated with the port.

ContainerProperties.InstanceView

The instance view of the container instance. Only valid in response.

Name Type Description
currentState

ContainerState

Current container instance state.

events

Event[]

The events of the container instance.

previousState

ContainerState

Previous container instance state.

restartCount

integer

The number of times that the container instance has been restarted.

ContainerState

The container instance state.

Name Type Description
detailStatus

string

The human-readable status of the container instance state.

exitCode

integer

The container instance exit codes correspond to those from the docker run command.

finishTime

string

The date-time when the container instance state finished.

startTime

string

The date-time when the container instance state started.

state

string

The state of the container instance.

EmptyDirVolume

The empty directory volume.

EnvironmentVariable

The environment variable to set within the container instance.

Name Type Description
name

string

The name of the environment variable.

value

string

The value of the environment variable.

Event

A container group or container instance event.

Name Type Description
count

integer

The count of the event.

firstTimestamp

string

The date-time of the earliest logged event.

lastTimestamp

string

The date-time of the latest logged event.

message

string

The event message.

name

string

The event name.

type

string

The event type.

GitRepoVolume

Represents a volume that is populated with the contents of a git repository

Name Type Description
directory

string

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.

repository

string

Repository URL

revision

string

Commit hash for the specified revision.

ImageRegistryCredential

Image registry credential.

Name Type Description
password

string

The password for the private registry.

server

string

The Docker image registry server without a protocol such as "http" and "https".

username

string

The username for the private registry.

InstanceView

The instance view of the container group. Only valid in response.

Name Type Description
events

Event[]

The events of this container group.

state

string

The state of the container group. Only valid in response.

IpAddress

IP address for the container group.

Name Type Description
dnsNameLabel

string

The Dns name label for the IP.

fqdn

string

The FQDN for the IP.

ip

string

The IP exposed to the public internet.

ports

Port[]

The list of ports exposed on the container group.

type

ContainerGroupIpAddressType

Specifies if the IP is exposed to the public internet.

OperatingSystemTypes

The operating system type required by the containers in the container group.

Value Description
Linux
Windows

Port

The port exposed on the container group.

Name Type Description
port

integer

The port number.

protocol

ContainerGroupNetworkProtocol

The protocol associated with the port.

ResourceLimits

The resource limits.

Name Type Description
cpu

number

The CPU limit of this container instance.

memoryInGB

number

The memory limit in GB of this container instance.

ResourceRequests

The resource requests.

Name Type Description
cpu

number

The CPU request of this container instance.

memoryInGB

number

The memory request in GB of this container instance.

ResourceRequirements

The resource requirements.

Name Type Description
limits

ResourceLimits

The resource limits of this container instance.

requests

ResourceRequests

The resource requests of this container instance.

Volume

The properties of the volume.

Name Type Description
azureFile

AzureFileVolume

The Azure File volume.

emptyDir

EmptyDirVolume

The empty directory volume.

gitRepo

GitRepoVolume

The git repo volume.

name

string

The name of the volume.

secret

object

The secret volume.

VolumeMount

The properties of the volume mount.

Name Type Description
mountPath

string

The path within the container where the volume should be mounted. Must not contain colon (:).

name

string

The name of the volume mount.

readOnly

boolean

The flag indicating whether the volume mount is read-only.