練習 - 控制重新啟動行為

已完成

在 Azure 容器執行個體中部署容器輕鬆又快速,非常適合用來執行一次性工作,例如影像轉譯,或是建置及測試應用程式。

使用可設定的重新啟動原則,您可以指定當容器的程序完成時,停止容器。 因為容器執行個體是以秒計費,所以您只需支付當執行您的工作之容器執行時所使用的計算資源。

什麼是容器重新啟動原則?

Azure 容器執行個體有三個重新啟動原則選項:

重新啟動原則 描述
永遠 容器群組中的容器一律會重新啟動。 此原則最適合長時間執行的工作,例如網頁伺服器。 這是在建立容器之際未指定重新啟動原則時,套用的預設設定。
Never 容器群組中的容器永不重新啟動。 容器僅執行一次。
OnFailure 容器群組中的容器只會在容器中的處理序執行失敗時 (當它以非零結束代碼終止時) 重新啟動。 容器執行至少一次。 此原則適用於執行短時間工作的容器。

執行容器至完成

若要了解重新啟動原則的運作方式,請從 azuredocs/aci-wordcount 容器映像建立容器執行個體,然後指定 OnFailure 重新啟動原則。 此容器會執行 Python 指令碼,此指令碼會分析 Shakespeare 的 Hamlet 文字,將 10 個最常見的字詞寫入到標準輸出,然後結束。

  1. 執行 az container create 命令以啟動容器:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Azure 容器執行個體會啟動容器,然後在它的處理序 (或者是此案例中的指令碼) 結束時停止它。 當 Azure 容器執行個體停止其重新啟動原則為 NeverOnFailure 的容器時,容器的狀態會設定為 Terminated

  2. 執行 az container show 來檢查您的容器狀態:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    重複執行命令,直到它達到 Terminated 狀態。

  3. 執行 az container logs 來檢視容器的記錄來檢查輸出:

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    您會取得此輸出:

    [('the', 990),
     ('and', 702),
     ('of', 628),
     ('to', 610),
     ('I', 544),
     ('you', 495),
     ('a', 453),
     ('my', 441),
     ('in', 399),
     ('HAMLET', 386)]