練習 - 使用資料磁碟區

已完成

根據預設,Azure 容器執行個體均為無狀態。 如果容器損毀或停止,其所有狀態都會遺失。 若要在容器超過存留期後保存其狀態,您必須從外部存放區掛接磁碟區。

您將會把 Azure 檔案共用掛接至 Azure 容器執行個體,以便稍後可用來儲存資料並存取。

建立 Azure 檔案共用

建立儲存體帳戶和檔案共用。 稍後,可以讓檔案共用可供 Azure 容器執行個體存取。

  1. 您的儲存體帳戶需要唯一名稱。 為了方便學習,請執行下列命令,以在 Bash 變數中儲存唯一名稱:

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. 執行下列 az storage account create 命令以建立儲存體帳戶:

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. 執行下列命令,將儲存體帳戶連接字串放入名為 AZURE_STORAGE_CONNECTION_STRING 的環境變數中:

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --output tsv)
    

    AZURE_STORAGE_CONNECTION_STRING 是 Azure CLI 所了解的特殊環境變數。 export 組件讓此變數可供您稍後要執行的其他 CLI 命令存取。

  4. 執行此命令以在儲存體帳戶中建立名為 aci-share-demo 的檔案共用:

    az storage share create --name aci-share-demo
    

取得儲存體認證

若要掛接 Azure 檔案共用作為 Azure 容器執行個體中的磁碟區,您需要下列三個值:

  • 儲存體帳戶名稱
  • 共用名稱
  • 儲存體帳戶存取金鑰

您已有前兩個值。 儲存體帳戶名稱是儲存在 STORAGE_ACCOUNT_NAME Bash 變數中。 您已在上一個步驟中指定 aci-share-demo 作為共用名稱。 您可以在這裡取得其餘的值:儲存體帳戶存取金鑰。

  1. 執行下列命令以取得儲存體帳戶金鑰:

    STORAGE_KEY=$(az storage account keys list \
      --resource-group learn-deploy-aci-rg \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    結果是儲存在名為 STORAGE_KEY 的 Bash 變數中。

  2. 您也可以選擇性地將儲存體金鑰列印到主控台。

    echo $STORAGE_KEY
    

部署容器和掛接檔案共用

若要掛接 Azure 檔案共用以作為容器中的磁碟區,請在建立容器時指定共用和磁碟區掛接點。

  1. 執行此 az container create 命令,以建立將 /aci/logs/ 掛接至您檔案共用的容器:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --image mcr.microsoft.com/azuredocs/aci-hellofiles \
      --location eastus \
      --ports 80 \
      --ip-address Public \
      --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \
      --azure-file-volume-account-key $STORAGE_KEY \
      --azure-file-volume-share-name aci-share-demo \
      --azure-file-volume-mount-path /aci/logs/
    
  2. 執行 az container show,以取得您容器的公用 IP 位址:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. 從瀏覽器中瀏覽至您的容器 IP 位址。 您會看見此頁面:

    Screenshot of the Azure Container Instances file share demo running in a browser.

  4. 輸入一些文字到表單中,然後選取 [提交]。 此動作會建立檔案,其中包含您在 Azure 檔案共用中輸入的文字。

  5. 執行此 az storage file list 命令,以顯示包含在您檔案共用中的檔案:

    az storage file list -s aci-share-demo -o table
    
  6. 執行 az storage file download 以將檔案下載到您的 Cloud Shell 工作階段。 使用上個步驟中顯示的其中一個檔案取代 <filename>

    az storage file download -s aci-share-demo -p <filename>
    
  7. 執行 cat 命令以將檔案內容列印出來。

    cat <filename>
    

請記住,當您的容器結束時,資料仍會保留。 您可以將檔案共用掛接到其他容器執行個體,以將資料提供給它們使用。