Montar um volume EmptyDir no Azure Container Instances

Saiba como montar um volume emptyDir para partilhar dados entre os contentores num grupo de contentores no Azure Container Instances. Utilize volumes emptyDir como caches efémeras para as cargas de trabalho em contentores.

Nota

A montagem de um volume emptyDir está atualmente restrita a contentores do Linux. Enquanto estamos a trabalhar para trazer todas as funcionalidades para contentores do Windows, pode encontrar as diferenças atuais da plataforma na descrição geral.

volume emptyDir

O volume emptyDir fornece um diretório gravável acessível a cada contentor num grupo de contentores. Os contentores no grupo podem ler e escrever os mesmos ficheiros no volume e podem ser montados com os mesmos caminhos ou caminhos diferentes em cada contentor.

Alguns exemplos utilizam para um volume emptyDir :

  • Espaço de rascunho
  • Pontos de verificação durante tarefas de execução prolongada
  • Armazenar dados obtidos por um contentor de sidecar e servidos por um contentor de aplicações

Os dados num volume emptyDir persistem através de falhas de contentor. No entanto, os contentores que são reiniciados não têm a garantia de que persistem os dados num volume EmptyDir . Se parar um grupo de contentores, o volume emptyDir não será mantido.

O tamanho máximo de um volume Linux emptyDir é de 50 GB.

Montar um volume emptyDir

Para montar um volume emptyDir numa instância de contentor, pode implementar com um modelo de Resource Manager do Azure, um ficheiro YAML ou outros métodos programáticos para implementar um grupo de contentores.

Primeiro, preencha a volumes matriz na secção do grupo properties de contentores do ficheiro. Em seguida, para cada contentor no grupo de contentores no qual pretende montar o volume emptyDir , preencha a volumeMounts matriz na properties secção da definição de contentor.

Por exemplo, o seguinte modelo de Resource Manager cria um grupo de contentores composto por dois contentores, cada um dos quais monta o volume emptyDir:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
    "container2name": "aci-tutorial-sidecar",
    "container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
  },
  "resources": [
    {
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2021-03-01",
      "name": "volume-demo-emptydir",
      "location": "[resourceGroup().location]",
      "properties": {
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                }
              ],
              "volumeMounts": [
                {
                  "name": "emptydir1",
                  "mountPath": "/mnt/empty"
                }
              ]
            }
          },
          {
            "name": "[variables('container2name')]",
            "properties": {
              "image": "[variables('container2image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "volumeMounts": [
                {
                  "name": "emptydir1",
                  "mountPath": "/mnt/empty"
                }
              ]
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            }
          ]
        },
        "volumes": [
          {
            "name": "emptydir1",
            "emptyDir": {}
          }
        ]
      }
    }
  ]
}

Para ver exemplos de implementação de grupos de contentores, veja Implementar um grupo de vários contentores com um modelo de Resource Manager e Implementar um grupo de vários contentores com um ficheiro YAML.

Passos seguintes

Saiba como montar outros tipos de volume no Azure Container Instances: