练习 - 控制重启行为

已完成

在 Azure 容器实例中部署容器非常简单快速,因此它很适合执行图像呈现或生成和测试应用程序等一次性运行任务。

借助可配置的重启策略,可指定容器在完成进程后停止。 由于容器实例按秒计费,只需针对执行任务的容器在运行时所用的计算资源付费。

什么是容器重启策略?

Azure 容器实例有 3 个重启策略选项:

重启策略 说明
Always 始终重启容器组中的容器。 此策略适用于长时间运行的任务,例如 Web 服务器。 如果在创建容器时未指定重启策略,则会应用此默认设置。
Never 永远不重启容器组中的容器。 容器只运行一次。
OnFailure 仅当容器中执行的进程失败(它以非零退出代码终止)时,才重启容器组中的容器。 容器至少运行一次。 此策略适用于运行短期任务的容器。

一直运行容器直到完成

若要查看重启策略的工作方式,请基于 azuredocs/aci-wordcount 容器映像创建一个容器实例,并指定 OnFailure 重启策略。 此容器运行一个 Python 脚本,后者会分析莎士比亚著作《哈姆雷特》中的文本,将 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 容器实例停止的容器的重启策略为 Never 或 OnFailure,那么容器的状态设置为“已终止”。

  2. 运行 az container show 来检查容器的状态:

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

    重复执行该命令,直到它达到“已终止”状态。

  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)]