练习 - 运行 Azure 容器实例
在 Azure 中创建一个容器,并使用完全限定的域名 (FQDN) 将该容器公开到 Internet。
重要
需要自己的 Azure 订阅才能运行此练习,这可能会产生费用。 如果还没有 Azure 订阅,请在开始前创建一个免费帐户。
为何使用 Azure 容器实例?
不管什么方案(包括简单应用程序、任务自动化、生成作业),只要能够在隔离容器中操作,就可以使用 Azure 容器实例。 部分优势如下:
- 快速启动:只需几秒即可启动容器。
- 按秒计费:只在容器运行时产生费用。
- 虚拟机监控程序级别的安全性:尽可能如同在 VM 中时一样隔离应用程序。
- 自定义大小:为 CPU 核心数和内存指定确切的值。
- 持久存储:将 Azure 文件存储共享直接装载到一个用于检索和持久保存状态的容器。
- Linux 和 Windows 容器:使用同一 API 来计划 Windows 和 Linux 容器。
对于需要完整容器业务流程的方案(包括跨多个容器的服务发现、自动缩放、协调式应用程序升级),建议使用 Azure Kubernetes 服务 (AKS)。
创建容器
使用 Azure 订阅登录 Azure 门户。
从 Azure 门户选择 Cloud Shell 图标打开 Azure Cloud Shell。 确保选择“Bash”作为交互式 Cloud Shell 环境。
创建名为“learn-deploy-aci-rg”的新资源组,以便在完成该模块后,可以更轻松地清理这些资源。 如果选择其他资源组名称,请记住它,以便在本模块的其余练习中使用。 还需要选择要在其中创建资源组的区域,例如美国东部。
az group create --name learn-deploy-aci-rg --location eastus
向
az container create
命令提供名称、Docker 映像和 Azure 资源组,以创建容器。 还可以通过指定 DNS 名称标签向 Internet 公开容器。 在本示例中,请部署一个托管小型 Web 应用的容器。 此外可选择映像的放置位置(我们将使用“美国东部”区域),但可将其更改为你附近的某个位置。提供一个 DNS 名称,以便将容器公开到 Internet。 DNS 名称必须唯一。 为便于学习,请通过 Cloud Shell 运行此命令,以创建包含唯一名称的 Bash 变量:
DNS_NAME_LABEL=aci-demo-$RANDOM
运行以下
az container create
命令以启动容器示例:az container create \ --resource-group learn-deploy-aci-rg \ --name mycontainer \ --image mcr.microsoft.com/azuredocs/aci-helloworld \ --ports 80 \ --dns-name-label $DNS_NAME_LABEL \ --location eastus
$DNS_NAME_LABEL
指定 DNS 名称。 映像名称“azuredocs/aci-helloworld”指的是托管在运行基本 Node.js Web 应用程序的 Microsoft Container Registry 上的容器映像。当
az container create
命令完成时,运行az container show
以检查其状态:az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer \ --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" \ --output table
获取容器的完全限定的域名 (FQDN) 及其预配状态。 下面是一个示例:
FQDN ProvisioningState -------------------------------------- ------------------- aci-demo-0000.eastus.azurecontainer.io Succeeded
如果容器处于“正在创建”状态,请稍等片刻后再次运行该命令,直至看到“已成功”状态。
在浏览器中,转到容器的 FQDN 以查看其正在运行。 确保在字符串“aci-demo...”前输入“http://”。 应会获取此欢迎页:
总结
在这里,你创建了一个用于运行 Web 服务器和应用程序的 Azure 容器实例。 你还使用容器实例的 FQDN 访问了此应用程序。