練習 - 使用資料磁碟區
根據預設,Azure 容器執行個體均為無狀態。 如果容器損毀或停止,其所有狀態都會遺失。 若要在容器超過存留期後保存其狀態,您必須從外部存放區掛接磁碟區。
您將會把 Azure 檔案共用掛接至 Azure 容器執行個體,以便稍後可用來儲存資料並存取。
建立 Azure 檔案共用
建立儲存體帳戶和檔案共用。 稍後,可以讓檔案共用可供 Azure 容器執行個體存取。
您的儲存體帳戶需要唯一名稱。 為了方便學習,請執行下列命令,以在 Bash 變數中儲存唯一名稱:
STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
執行下列
az storage account create
命令以建立儲存體帳戶:az storage account create \ --resource-group learn-deploy-aci-rg \ --name $STORAGE_ACCOUNT_NAME \ --sku Standard_LRS \ --location eastus
執行下列命令,將儲存體帳戶連接字串放入名為
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 命令存取。執行此命令以在儲存體帳戶中建立名為 aci-share-demo 的檔案共用:
az storage share create --name aci-share-demo
取得儲存體認證
若要掛接 Azure 檔案共用作為 Azure 容器執行個體中的磁碟區,您需要下列三個值:
- 儲存體帳戶名稱
- 共用名稱
- 儲存體帳戶存取金鑰
您已有前兩個值。 儲存體帳戶名稱是儲存在 STORAGE_ACCOUNT_NAME
Bash 變數中。 您已在上一個步驟中指定 aci-share-demo 作為共用名稱。 您可以在這裡取得其餘的值:儲存體帳戶存取金鑰。
執行下列命令以取得儲存體帳戶金鑰:
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 變數中。您也可以選擇性地將儲存體金鑰列印到主控台。
echo $STORAGE_KEY
部署容器和掛接檔案共用
若要掛接 Azure 檔案共用以作為容器中的磁碟區,請在建立容器時指定共用和磁碟區掛接點。
執行此
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/
執行
az container show
,以取得您容器的公用 IP 位址:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-files \ --query ipAddress.ip \ --output tsv
從瀏覽器中瀏覽至您的容器 IP 位址。 您會看見此頁面:
輸入一些文字到表單中,然後選取 [提交]。 此動作會建立檔案,其中包含您在 Azure 檔案共用中輸入的文字。
執行此
az storage file list
命令,以顯示包含在您檔案共用中的檔案:az storage file list -s aci-share-demo -o table
執行
az storage file download
以將檔案下載到您的 Cloud Shell 工作階段。 使用上個步驟中顯示的其中一個檔案取代 <filename>:az storage file download -s aci-share-demo -p <filename>
執行
cat
命令以將檔案內容列印出來。cat <filename>
請記住,當您的容器結束時,資料仍會保留。 您可以將檔案共用掛接到其他容器執行個體,以將資料提供給它們使用。