Esercizio - Controllare il comportamento di riavvio
La semplicità e la velocità della distribuzione di contenitori in Istanze di Azure Container lo rendono particolarmente adatto per le attività che vengono eseguite una sola volta, come il rendering di immagini o la compilazione e il test di applicazioni.
Con i criteri di riavvio configurabili, è possibile specificare che i contenitori vengano arrestati al completamento dei processi. Poiché le istanze del contenitore vengono fatturate al secondo, vengono addebitate solo le risorse di calcolo usate mentre il contenitore che esegue l'attività è in esecuzione.
Cosa sono i criteri di riavvio del contenitore?
Istanze di Azure Container ha tre opzioni per i criteri di riavvio:
Criterio di riavvio | Descrizione |
---|---|
Sempre | I contenitori nel gruppo di contenitori vengono sempre riavviati. Questo criterio ha senso per le attività con esecuzione prolungata, ad esempio un server Web. Questa è l'impostazione predefinita applicata quando non si specificano i criteri di riavvio al momento della creazione del contenitore. |
Mai | I contenitori nel gruppo di contenitori non vengono mai riavviati. I contenitori vengono eseguiti una sola volta. |
In caso di esito negativo | I contenitori nel gruppo di contenitori vengono riavviati solo quando il processo eseguito nel contenitore ha esito negativo, ovvero quando termina con un codice di uscita diverso da zero. I contenitori vengono eseguiti almeno una volta. Questo criterio funziona per i contenitori che eseguono attività di breve durata. |
Eseguire un contenitore fino al completamento
Per vedere i criteri di riavvio in azione, creare un'istanza di contenitore dall'immagine Docker azuredocs/aci-wordcount e specificare il criterio di riavvio OnFailure. Questo contenitore esegue uno script Python che analizza il testo dell'Amleto di Shakespeare, scrive le 10 parole più comuni nell'output standard e quindi esce.
Eseguire il comando
az container create
per avviare il contenitore: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
Istanze di Azure Container avvia il contenitore e quindi lo arresta quando il relativo processo, in questo caso uno script, esce. Quando Istanze di Azure Container arresta un contenitore i cui criteri di riavvio sono Never o OnFailure, lo stato del contenitore è impostato su Terminato.
Eseguire
az container show
per controllare lo stato del contenitore:az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
Ripetere il comando finché non raggiunge lo stato Terminato.
Eseguire
az container logs
per visualizzare i log del contenitore per esaminare l'output:az container logs \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo
Si otterrà questo output:
[('the', 990), ('and', 702), ('of', 628), ('to', 610), ('I', 544), ('you', 495), ('a', 453), ('my', 441), ('in', 399), ('HAMLET', 386)]