Montar um volume emptyDir em Instâncias de Contêiner do Azure

Saiba como montar um volume emptyDir para compartilhar dados entre os contêineres em um grupo de contêineres em Instâncias de Contêiner do Azure. Use volumes emptyDir como caches efêmeros para suas cargas de trabalho em contêineres.

Observação

A montagem de um volume emptyDir está atualmente restrita a contêineres do Linux. Enquanto trabalhamos para trazer todos os recursos para os contêineres do Windows, você pode encontrar as diferenças entre plataformas atuais na Visão geral.

Volume emptyDir

O volume emptyDir fornece um diretório gravável acessível para cada contêiner em um grupo de contêineres. Os contêineres no grupo podem ler e gravar os mesmos arquivos no volume, e ele pode ser montado usando-se os mesmos caminhos ou caminhos diferentes em cada contêiner.

Alguns exemplos usam para um volume emptyDir:

  • Espaço transitório
  • Ponto de verificação durante tarefas de longa execução
  • Armazenar dados recuperados por um contêiner secundário e fornecidos por um contêiner de aplicativos

Os dados em um volume emptyDir são mantidos mesmo após falhas de contêiner. Os contêineres reiniciados, entretanto, não têm a garantia de manter os dados em um volume emptyDir. Se você parar um grupo de contêineres, o volume emptyDir não será persistido.

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

Montar um volume emptyDir

Para montar um volume emptyDir em uma instância de contêiner, você pode implantar usando um modelo do Azure Resource Manager, um arquivo YAML ou outros métodos programáticos para implantar um grupo de contêineres.

Primeiro, popule a matriz volumes na seção properties do grupo de contêineres do arquivo. Em seguida, para cada contêiner do grupo de contêineres no qual você deseja montar o volume emptyDir, popule a matriz volumeMounts na seção properties da definição de contêiner.

Por exemplo, o modelo do Resource Manager a seguir cria um grupo de contêineres que consiste em dois contêineres, cada um montando 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 implantação de grupos de contêineres, confira Implantar um grupo de vários contêineres usando um modelo do Resource Manager e Implantar um grupo de vários contêineres usando um arquivo YAML.

Próximas etapas

Saiba como montar outros tipos de volume em Instâncias de Contêiner do Azure: