你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure PowerShell 在 Azure 中部署容器实例

使用 Azure 容器实例在 Azure 中快速方便地运行无服务器 Docker 容器。 当你不需要像 AzureKubernetes 服务这样的完整容器业务流程平台时,可以按需将应用程序部署到容器实例。

本快速入门将使用 Azure PowerShell 部署一个独立的 Windows 容器,并使其应用程序可通过完全限定的域名 (FQDN) 使用。 在执行单个部署命令几秒钟之后,可以浏览到正在容器中运行的应用程序:

在浏览器中显示的已部署到 Azure 容器实例的应用

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

Azure Cloud Shell

Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。

若要启动 Azure Cloud Shell,请执行以下操作:

选项 示例/链接
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 显示 Azure Cloud Shell 的“试用”示例的屏幕截图。
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 用于启动 Azure Cloud Shell 的按钮。
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 显示 Azure 门户中的 Cloud Shell 按钮的屏幕截图

若要使用 Azure Cloud Shell,请执行以下操作:

  1. 启动 Cloud Shell。

  2. 选择代码块(或命令块)上的“复制”按钮以复制代码或命令。

  3. 在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。

  4. 选择“Enter”运行代码或命令。

如果选择在本地安装并使用 PowerShell,则本教程需要 Azure PowerShell 模块。 运行 Get-Module -ListAvailable Az 即可查找版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount 来创建与 Azure 的连接。

创建资源组

Azure 容器实例(例如所有 Azure 资源)都必须部署到资源组中。 使用资源组可以组织和管理相关的 Azure 资源。

首先,使用以下 New-AzResourceGroup 命令在 eastus 位置创建名为 myResourceGroup 的资源组

New-AzResourceGroup -Name myResourceGroup -Location EastUS

创建集装箱组

创建资源组后,可在 Azure 中运行容器。 要使用 Azure PowerShell 创建容器实例,首先需要通过为容器提供名称和映像来创建 ContainerInstanceObject。 本快速入门将使用公共 mcr.microsoft.com/windows/servercore/iis:nanoserver 映像。 此映像打包了 Microsoft Internet Information Services (IIS),以在 Nano Server 中运行。

New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/windows/servercore/iis:nanoserver

接下来,使用 New-AzContainerGroup cmdlet。 需要提供容器组的名称、资源组的名称、容器组的位置、刚刚创建的容器实例、操作系统类型以及唯一的 IP 地址 DNS 名称标签。

可以通过指定要打开的一个或多个端口、一个 DNS 名称标签(或同时指定两者)来向 Internet 公开容器。 在本快速入门中,你将部署一个具有 DNS 名称标签的容器,以便 IIS 可供公开访问。

执行类似于以下的命令以启动容器实例。 设置在创建实例的 Azure 区域中唯一的 -IPAddressDnsNameLabel 值。 如果收到“DNS 名称标签不可用”错误消息,请尝试使用一个不同的 DNS 名称标签。

New-AzContainerInstanceObject -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-demo-win

在几秒钟内,应会收到来自 Azure 的响应。 容器的 ProvisioningState 最初为 Creating,但在一到两分钟内,应会改为 Succeeded。 使用 Get-AzContainerGroup cmdlet 检查部署状态:

Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup

容器的预配状态、完全限定的域名 (FQDN) 和 IP 地址会显示在 cmdlet 的输出中:

PS Azure:\> Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup


ResourceGroupName        : myResourceGroup
Id                       : /subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup
Name                     : myContainerGroup
Type                     : Microsoft.ContainerInstance/containerGroups
Location                 : eastus
Tags                     :
ProvisioningState        : Creating
Containers               : {myContainer}
ImageRegistryCredentials :
RestartPolicy            : Always
IpAddress                : 52.226.19.87
DnsNameLabel             : aci-demo-win
Fqdn                     : aci-demo-win.eastus.azurecontainer.io
Ports                    : {80}
OsType                   : Windows
Volumes                  :
State                    : Pending
Events                   : {}

容器的 ProvisioningState 变为 Succeeded 后,请在浏览器中导航到其 Fqdn。 如果看到类似于下图的网页,那么恭喜你! 现已成功将 Docker 容器中运行的应用程序部署到 Azure。

在浏览器中显示的使用 Azure 容器实例部署的 IIS

清理资源

使用完容器后,可使用 Remove-AzContainerGroup cmdlet 将其删除:

Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup

后续步骤

在本快速入门中,你已基于公共 Docker 中心注册表中的映像创建了 Azure 容器实例。 若要基于专用 Azure 容器注册表生成容器映像并部署它,请继续学习 Azure 容器实例教程。