你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure PowerShell 在 Azure 中部署容器实例
使用 Azure 容器实例在 Azure 中快速方便地运行无服务器 Docker 容器。 当你不需要像 AzureKubernetes 服务这样的完整容器业务流程平台时,可以按需将应用程序部署到容器实例。
本快速入门将使用 Azure PowerShell 部署一个独立的 Windows 容器,并使其应用程序可通过完全限定的域名 (FQDN) 和端口使用。 在执行单个部署命令几秒钟之后,可以浏览到正在容器中运行的应用程序:
![在浏览器中查看部署到 Azure 容器实例的应用][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
如果没有 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。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“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
为容器实例创建端口
可以通过指定要打开的一个或多个端口、一个 DNS 名称标签(或同时指定两者)来向 Internet 公开容器。 在本快速入门中,你会部署具有 DNS 名称标签的容器,以便它可供公开访问。 在本指南中,我们会执行这两项操作,但你首先需要在 PowerShell 中创建端口对象供容器实例使用。
$port = New-AzContainerInstancePortObject -Port 80 -Protocol TCP
创建集装箱组
有了资源组和端口后,即可运行在 Azure 中向 Internet 公开的容器。 要使用 Azure PowerShell 创建容器实例,首先需要通过为容器提供名称、映像和端口来创建ContainerInstanceObject
。 本快速入门将使用公共 mcr.microsoft.com/azuredocs/aci-helloworld
映像。
New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/azuredocs/aci-helloworld -Port @($port)
接下来,使用 New-AzContainerGroup cmdlet。 需要提供容器组的名称、资源组的名称、容器组的位置、创建的容器实例、操作系统类型以及唯一的 IP 地址 DNS 名称标签。
执行类似于以下的命令以启动容器实例。 设置在创建实例的 Azure 区域中唯一的 -IPAddressDnsNameLabel
值。 如果收到“DNS 名称标签不可用”错误消息,请尝试使用一个不同的 DNS 名称标签。
$containerGroup = New-AzContainerInstanceObject -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPort @($port)
在几秒钟内,应会收到来自 Azure 的响应。 容器的 ProvisioningState
最初为 Creating,但在一到两分钟内,应会改为 Succeeded。 使用 Get-AzContainerGroup cmdlet 检查部署状态:
Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
还可以打印 $containerGroup 对象,并筛选容器的预配状态、完全限定的域名 (FQDN) 和 IP 地址的表。
$containerGroup | Format-Table InstanceViewState, IPAddressFqdn, IPAddressIP
容器的预配状态、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 容器实例的应用][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
清理资源
使用完容器后,可使用 Remove-AzContainerGroup cmdlet 将其删除:
Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
后续步骤
在本快速入门中,你已基于公共 Docker 中心注册表中的映像创建了 Azure 容器实例。 若要基于专用 Azure 容器注册表生成容器映像并部署它,请继续学习 Azure 容器实例教程。