练习 - 运行 Azure 容器实例

已完成

在 Azure 中创建一个容器,并使用完全限定的域名 (FQDN) 将该容器公开到 Internet。

重要

需要自己的 Azure 订阅才能运行此练习,这可能会产生费用。 如果还没有 Azure 订阅,请在开始前创建一个免费帐户

为何使用 Azure 容器实例?

不管什么方案(包括简单应用程序、任务自动化、生成作业),只要能够在隔离容器中操作,就可以使用 Azure 容器实例。 部分优势如下:

  • 快速启动:只需几秒即可启动容器。
  • 按秒计费:只在容器运行时产生费用。
  • 虚拟机监控程序级别的安全性:尽可能如同在 VM 中时一样隔离应用程序。
  • 自定义大小:为 CPU 核心数和内存指定确切的值。
  • 持久存储:将 Azure 文件存储共享直接装载到一个用于检索和持久保存状态的容器。
  • Linux 和 Windows 容器:使用同一 API 来计划 Windows 和 Linux 容器。

对于需要完整容器业务流程的方案(包括跨多个容器的服务发现、自动缩放、协调式应用程序升级),建议使用 Azure Kubernetes 服务 (AKS)。

创建容器

  1. 使用 Azure 订阅登录 Azure 门户

  2. 从 Azure 门户选择 Cloud Shell 图标打开 Azure Cloud Shell。 确保选择“Bash”作为交互式 Cloud Shell 环境。

  3. 创建名为“learn-deploy-aci-rg”的新资源组,以便在完成该模块后,可以更轻松地清理这些资源。 如果选择其他资源组名称,请记住它,以便在本模块的其余练习中使用。 还需要选择要在其中创建资源组的区域,例如美国东部。

    az group create --name learn-deploy-aci-rg --location eastus
    

    az container create 命令提供名称、Docker 映像和 Azure 资源组,以创建容器。 还可以通过指定 DNS 名称标签向 Internet 公开容器。 在本示例中,请部署一个托管小型 Web 应用的容器。 此外可选择映像的放置位置(我们将使用“美国东部”区域),但可将其更改为你附近的某个位置。

  4. 提供一个 DNS 名称,以便将容器公开到 Internet。 DNS 名称必须唯一。 为便于学习,请通过 Cloud Shell 运行此命令,以创建包含唯一名称的 Bash 变量:

    DNS_NAME_LABEL=aci-demo-$RANDOM
    
  5. 运行以下 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 上的容器映像。

  6. 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
    

    如果容器处于“正在创建”状态,请稍等片刻后再次运行该命令,直至看到“已成功”状态。

  7. 在浏览器中,转到容器的 FQDN 以查看其正在运行。 确保在字符串“aci-demo...”前输入“http://”。 应会获取此欢迎页:

    显示示例 Node.js 容器应用正在浏览器中运行的屏幕截图。

总结

在这里,你创建了一个用于运行 Web 服务器和应用程序的 Azure 容器实例。 你还使用容器实例的 FQDN 访问了此应用程序。