Azure Container Instances에서 emptyDir 볼륨 탑재

Azure Container Instances 컨테이너 그룹의 컨테이너 간에 데이터를 공유하기 위해 emptyDir 볼륨을 탑재하는 방법을 알아봅니다. emptyDir 볼륨을 컨테이너화된 워크로드를 위한 임시 캐시로 사용합니다.

참고 항목

현재 emptyDir 볼륨 탑재는 Linux 컨테이너로 제한됩니다. Windows 컨테이너에도 모든 기능을 제공하려고 작업 중이며 현재 플랫폼의 차이점은 개요에서 찾아볼 수 있습니다.

emptyDir 볼륨

emptyDir 볼륨은 컨테이너 그룹의 각 컨테이너에 액세스할 수 있는 쓰기 가능한 디렉터리를 제공합니다. 그룹의 컨테이너는 볼륨에 있는 동일한 파일을 읽고 쓸 수 있고 같거나 다른 경로를 사용하여 각 컨테이너에 탑재될 수 있습니다.

emptyDir 볼륨에 대한 몇 가지 사용 예:

  • 스크래치 공백
  • 오랫동안 실행 중인 작업에 대한 검사점
  • 사이드카 컨테이너에서 검색하고 애플리케이션 컨테이너에서 제공된 데이터 저장

emptyDir 볼륨의 데이터는 컨테이너 충돌까지 유지됩니다. 그러나 다시 시작된 컨테이너가 emptyDir 볼륨의 데이터를 유지하는 것은 보장되지 않습니다. 컨테이너 그룹을 중지하면 emptyDir 볼륨은 유지되지 않습니다.

Linux emptyDir 볼륨의 최대 크기는 50GB입니다.

emptyDir 볼륨 탑재

컨테이너 인스턴스에 emptyDir 볼륨을 탑재하려면 Azure Resource Manager 템플릿, YAML 파일 또는 기타 프로그래밍 방식 매서드를 사용하여 컨테이너 그룹을 배포할 수 있습니다.

먼저 파일의 volumes컨테이너 그룹 배열properties 섹션을 채웁니다. 다음으로 emptyDir 볼륨을 탑재하려는 컨테이너 그룹에 있는 각 컨테이너의 경우 컨테이너 정의의 properties 섹션에서 volumeMounts 배열을 채웁니다.

예를 들어 다음과 같은 Resource Manager 템플릿은 두 컨테이너로 구성된 컨테이너 그룹을 만들고 각 그룹은 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": {}
          }
        ]
      }
    }
  ]
}

컨테이너 그룹 배포의 예제를 보려면 Resource Manager 템플릿을 사용하여 다중 컨테이너 그룹 배포YAML 파일을 사용하여 다중 컨테이너 그룹 배포를 참조하세요.

다음 단계

Azure Container Instances에서 다른 볼륨 유형을 탑재하는 방법을 알아봅니다.