你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure PowerShell 在 Azure 中部署容器实例
使用 Azure 容器实例在 Azure 中快速方便地运行无服务器 Docker 容器。 当你不需要像 AzureKubernetes 服务这样的完整容器业务流程平台时,可以按需将应用程序部署到容器实例。
本快速入门将使用 Azure PowerShell 部署一个独立的 Windows 容器,并使其应用程序可通过完全限定的域名 (FQDN) 使用。 在执行单个部署命令几秒钟之后,可以浏览到正在容器中运行的应用程序:
如果没有 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
创建集装箱组
创建资源组后,可在 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。
清理资源
使用完容器后,可使用 Remove-AzContainerGroup cmdlet 将其删除:
Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
后续步骤
在本快速入门中,你已基于公共 Docker 中心注册表中的映像创建了 Azure 容器实例。 若要基于专用 Azure 容器注册表生成容器映像并部署它,请继续学习 Azure 容器实例教程。