Montar um volume emptyDir no Azure Container Instances

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

Nota

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

volume emptyDir

O volume emptyDir fornece um diretório gravável acessível a 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 os mesmos caminhos ou caminhos diferentes em cada contêiner.

Alguns exemplos de usos para um volume emptyDir :

  • Espaço de rascunho
  • Ponto de verificação durante tarefas de longa execução
  • Armazene dados recuperados por um contêiner de carro lateral e servidos por um contêiner de aplicativo

Os dados em um volume emptyDir são persistidos por meio de falhas de contêiner. Os contêineres que são reiniciados, no entanto, não têm garantia de persistir 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.

Monte 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, preencha a volumes matriz na seção de grupo properties de contêineres do arquivo. Em seguida, para cada contêiner no grupo de contêineres no qual você deseja montar o volume emptyDir , preencha a volumeMounts properties matriz na seção da definição de contêiner.

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

Próximos passos

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