我有一个相当简单的Unix shell脚本,打包在Azure容器注册表中托管的Alpine Linux Docker容器中。VM使用cron运行以下脚本:
docker login <snip>
docker pull example.com/bar:latest
docker run example.com/bar:latest
我是否可以不用VM而是使用Azure服务,也许可以使用某种调度程序在Azure容器实例上运行它?
我的动机是不想维护虚拟机并为此付费。
我有一个相当简单的Unix shell脚本,打包在Azure容器注册表中托管的Alpine Linux Docker容器中。VM使用cron运行以下脚本:
docker login <snip>
docker pull example.com/bar:latest
docker run example.com/bar:latest
我是否可以不用VM而是使用Azure服务,也许可以使用某种调度程序在Azure容器实例上运行它?
我的动机是不想维护虚拟机并为此付费。
Answers:
如您建议的那样,Azure容器实例(ACI)可能是一个不错的选择。这些使您可以直接在Azure上运行容器,而无需管理虚拟机,并按使用容器的时间计费。
尽管该博客上的一个演示中提到了Kubernetes,但是ACI的想法是您可以通过Azure CLI使用来创建容器az container create
,就像在本地工作站上使用一样docker create
。
若要创建容器,可以使用Azure CLI(az
命令,请参阅快速入门文档)或Azure Cloud Shell。
您可能需要在其他地方的计划中创建/运行容器-Azure Functions可能是从计划的函数运行“容器创建”命令的好地方。它支持bash,PowerShell和其他语言 -全部在Windows上运行。
如果您想在不运行VM或不学习Kubernetes的情况下继续使用Docker容器,这可能是一个不错的选择。
或者,您可以将所有代码移到Azure Functions中,但这是一个更大的决定。
更新: 2019年1月-Azure Logic应用也可以用于运行计划的任务。
计划的devops管道是一种可重复运行的简单,免费的方式来运行Azure cli任务。