Een emptyDir-volume koppelen in Azure Container Instances

Meer informatie over het koppelen van een emptyDir-volume om gegevens te delen tussen de containers in een containergroep in Azure Container Instances. Gebruik emptyDir-volumes als tijdelijke caches voor uw containerworkloads.

Notitie

Het koppelen van een emptyDir-volume is momenteel beperkt tot Linux-containers. We werken eraan om alle functies naar Windows-containers te brengen, maar in het overzicht vindt u de huidige platformverschillen.

emptyDir volume

Het volume emptyDir biedt een beschrijfbare map die toegankelijk is voor elke container in een containergroep. Containers in de groep kunnen dezelfde bestanden in het volume lezen en schrijven en kunnen worden gekoppeld met behulp van dezelfde of verschillende paden in elke container.

Enkele voorbeelden van toepassingen voor een emptyDir-volume :

  • Scratchruimte
  • Controlepunten tijdens langlopende taken
  • Gegevens opslaan die zijn opgehaald door een sidecar-container en worden geleverd door een toepassingscontainer

Gegevens in een emptyDir-volume blijven behouden tijdens het vastlopen van de container. Containers die opnieuw worden opgestart, kunnen de gegevens echter niet gegarandeerd behouden in een emptyDir-volume . Als u een containergroep stopt, blijft het volume emptyDir niet behouden.

De maximale grootte van een Linux emptyDir-volume is 50 GB.

Een emptyDir-volume koppelen

Als u een emptyDir-volume in een containerinstantie wilt koppelen, kunt u implementeren met behulp van een Azure Resource Manager-sjabloon, een YAML-bestand of andere programmatische methoden om een containergroep te implementeren.

Vul eerst de volumes matrix in de sectie containergroep properties van het bestand in. Vul vervolgens voor elke container in de containergroep waarin u het volume emptyDir wilt koppelen de volumeMounts matrix in de properties sectie van de containerdefinitie.

Met de volgende Resource Manager sjabloon wordt bijvoorbeeld een containergroep gemaakt die bestaat uit twee containers, die elk het volume emptyDir koppelen:

{
  "$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": {}
          }
        ]
      }
    }
  ]
}

Zie Een groep met meerdere containers implementeren met behulp van een Resource Manager-sjabloon en Een groep met meerdere containers implementeren met behulp van een YAML-bestand voor voorbeelden van de implementatie van een containergroep.

Volgende stappen

Meer informatie over het koppelen van andere volumetypen in Azure Container Instances: