練習 - 控制重新啟動行為
在 Azure 容器執行個體中部署容器輕鬆又快速,非常適合用來執行一次性工作,例如影像轉譯,或是建置及測試應用程式。
使用可設定的重新啟動原則,您可以指定當容器的程序完成時,停止容器。 因為容器執行個體是以秒計費,所以您只需支付當執行您的工作之容器執行時所使用的計算資源。
什麼是容器重新啟動原則?
Azure 容器執行個體有三個重新啟動原則選項:
重新啟動原則 | 描述 |
---|---|
永遠 | 容器群組中的容器一律會重新啟動。 此原則最適合長時間執行的工作,例如網頁伺服器。 這是在建立容器之際未指定重新啟動原則時,套用的預設設定。 |
Never | 容器群組中的容器永不重新啟動。 容器僅執行一次。 |
OnFailure | 容器群組中的容器只會在容器中的處理序執行失敗時 (當它以非零結束代碼終止時) 重新啟動。 容器執行至少一次。 此原則適用於執行短時間工作的容器。 |
執行容器至完成
若要了解重新啟動原則的運作方式,請從 azuredocs/aci-wordcount 容器映像建立容器執行個體,然後指定 OnFailure 重新啟動原則。 此容器會執行 Python 指令碼,此指令碼會分析 Shakespeare 的 Hamlet 文字,將 10 個最常見的字詞寫入到標準輸出,然後結束。
執行
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 容器執行個體停止其重新啟動原則為 Never 或 OnFailure 的容器時,容器的狀態會設定為 Terminated。
執行
az container show
來檢查您的容器狀態:az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
重複執行命令,直到它達到 Terminated 狀態。
執行
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)]