练习 - 运行 Azure 容器实例

已完成

在本单元中,将在 Azure 中创建容器,再通过完全限定的域名 (FQDN) 向 Internet 公开该容器。

重要

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

为何使用 Azure 容器实例?

Azure 容器实例对能够在隔离容器中运行的场景非常有用,包括简单应用程序、任务自动化和生成作业。 部分优势如下:

  • 快速启动:只需几秒即可启动容器。
  • 按秒计费:只在容器运行时产生费用。
  • 管理程序级别的安全性:将您的应用程序完全隔离,就像在虚拟机中一样。
  • 自定义大小:为 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
    
  4. 提供一个 DNS 名称,以便将容器公开到 Internet。 DNS 名称必须唯一。 为便于学习,请通过 Cloud Shell 运行此命令,以创建包含唯一名称的 Bash 变量:

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

    运行以下 az container create 命令以启动容器示例:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer \
      --image mcr.microsoft.com/azuredocs/aci-helloworld \
      --os-type Linux \
      --cpu 1 \
      --memory 1.5 \
      --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 访问了此应用程序。