你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请考虑您的使用情况,并据此做好规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
适用于: ✔️ Linux 虚拟机 ✔️ Windows 虚拟机 ✔️ 灵活规模集
本主题介绍如何使用 Azure CLI 在 Azure 市场中查找 VM 映像。 使用 CLI、资源管理器模板或其他工具以编程方式创建 VM 时,使用此信息指定市场映像。
还可以使用 Azure 市场或 Azure PowerShell 浏览可用的映像和产品/服务。
术语
Azure 中的 Marketplace 映像具有以下属性:
- 发布者:创建映像的组织。 示例:Canonical、RedHat、SUSE。
- 产品:发布者创建的一组相关映像的名称。 示例:0001-com-ubuntu-server-jammy、RHEL、sles-15-sp3。
- SKU:套餐的实例,例如分发的主要版本。 示例:22_04-lts-gen2、8-lvm-gen2、gen2。
- 版本:映像 SKU 的版本号。
这些值可以单独传递,也可以组合成镜像 URN 进行传递,各值之间用冒号 (:) 分隔。 例如:发布者:产品:Sku:版本。 可将 URN 中的版本号替换为 latest,以使用最新版本的映像。
如果映像发布服务器提供附加许可和购买条款,则必须先接受这些条款才能使用映像。 有关详细信息,请参阅查看购买计划信息。
列出常用映像
运行 az vm image list --all 以查看所有可用的映像,但生成整个列表可能需要几分钟时间。 更快的选项是使用az vm image list(没有--all此选项)查看Azure 市场中常用 VM 映像的缓存列表。 例如,运行以下命令以表格式显示列表:
az vm image list --output table
输出包括映像 URN。 如果省略 --all 选项,结果中还可能包含常见映像的 UrnAlias 值,例如 Ubuntu2204。 确切的缓存列表因 Azure CLI 版本和云环境而异。
以下非详尽示例显示了 Azure CLI 2.87.0 返回的一些 Linux 映像别名,包括Azure Linux 4.0 别名:
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 azurelinux-4 microsoftazurelinux 4 microsoftazurelinux:azurelinux-4:4:latest AzureLinux4 latest
Arm64 azurelinux-4 microsoftazurelinux 4-arm64 microsoftazurelinux:azurelinux-4:4-arm64:latest AzureLinux4Arm64 latest
x64 azurelinux-4 microsoftazurelinux 4-gen1 microsoftazurelinux:azurelinux-4:4-gen1:latest AzureLinux4Gen1 latest
x64 CentOS OpenLogic 8_5-gen2 OpenLogic:CentOS:8_5-gen2:latest CentOS85Gen2 latest
x64 Debian11 Debian 11-backports-gen2 Debian:debian-11:11-backports-gen2:latest Debian-11 latest
x64 flatcar-container-linux-free kinvolk stable-gen2 kinvolk:flatcar-container-linux-free:stable-gen2:latest FlatcarLinuxFreeGen2 latest
x64 opensuse-leap-15-4 SUSE gen2 SUSE:opensuse-leap-15-4:gen2:latest OpenSuseLeap154Gen2 latest
x64 RHEL RedHat 8-lvm-gen2 RedHat:RHEL:8-lvm-gen2:latest RHELRaw8LVMGen2 latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts-gen2 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest Ubuntu2204 latest
以下Windows图像别名是此命令可以返回的另一个非详尽示例:
Architecture Offer Publisher Sku Urn Alias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest Win2022AzureEdition latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
查找特定映像
可以按 --publisher 或其他参数筛选映像列表以限制结果。
例如,以下命令显示所有 Debian 产品/服务:
az vm image list --offer Debian --all --output table
可以通过添加 --architecture 参数将结果限制为单个体系结构。 例如,如果要显示 Canonical 中提供的所有 Arm64 映像,请执行以下操作:
az vm image list --architecture Arm64 --publisher Canonical --all --output table
查看所有可用映像
在某个位置查找映像的另一种方法是,运行序列中的 az vm image list-publishers、az vm image list-offers 和 az vm image list-skus 命令。 可以使用这些命令确定以下值:
列出某个位置的映像发布者。 在本例中,我们探讨的是美国西部区域。
az vm image list-publishers --location westus --output table对于给定的发布者,列出其产品。 在此示例中,我们将 RedHat 添加为发布者。
az vm image list-offers --location westus --publisher RedHat --output table对于给定的产品,列出其 SKU。 在此示例中,我们将 RHEL 添加为套餐。
az vm image list-skus --location westus --publisher RedHat --offer RHEL --output table
注意
Canonical 已更改其最新版本所使用的 Offer 名称。 在 Ubuntu 20.04 之前,套餐名称为 UbuntuServer。 对于 Ubuntu 20.04,Offer 名称为 0001-com-ubuntu-server-focal;对于 Ubuntu 22.04,名称为 0001-com-ubuntu-server-jammy。
对于给定的发布者、产品和 SKU,显示该映像的所有版本。 在此示例中,我们将 9_1 添加为 SKU。
az vm image list \ --location westus \ --publisher RedHat \ --offer RHEL \ --sku 9_1 \ --all --output table
使用 --image 命令创建 VM 时,可将 URN 列的此值与 参数一起传递。 还可以将 URN 中的版本号替换为“latest”以使用最新版本的映像。
如果使用资源管理器模板部署 VM,请在 imageReference 属性中单独设置映像参数。 请参阅模板参考。
查看购买计划信息
Azure 市场中的某些 VM 映像具有附加许可条款和购买条款,你必须接受这些条款,然后才能以编程方式部署这些映像。
若要从此类映像部署 VM,则在首次使用该映像时,需要接受其使用条款;每个订阅只需接受一次。 还需要指定购买计划参数,才能从该映像部署虚拟机
若要查看映像的购买计划信息,请使用映像的 URN 运行 az vm image show 命令。 如果输出中的 plan 属性不是 null,则表示该映像包含在以编程方式部署之前需要接受的条款。
例如,Canonical Ubuntu Server 18.04 LTS 映像没有、额外条款,因为 plan 信息为 null:
az vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest
输出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201901220",
"location": "westus",
"name": "18.04.201901220",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
对 Bitnami 认证的 RabbitMQ 镜像运行类似的命令会显示以下 plan 属性:name、product 和 publisher。 (某些映像还具有 promotion code 属性。)
az vm image show --location westus --urn bitnami:rabbitmq:rabbitmq:latest
输出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/bitnami/ArtifactTypes/VMImage/Offers/rabbitmq/Skus/rabbitmq/Versions/3.7.1901151016",
"location": "westus",
"name": "3.7.1901151016",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": {
"name": "rabbitmq",
"product": "rabbitmq",
"publisher": "bitnami"
},
"tags": null
}
若要部署此映像,则在使用该映像部署 VM 时,需要接受条款,并提供购买计划参数。
接受条款
若要查看并接受许可条款,请使用 az vm image terms 命令。 接受这些条款后,你将启用在你的订阅中通过编程方式进行部署的功能。 对于映像的每个订阅,只需接受条款一次。 例如:
az vm image terms show --urn bitnami:rabbitmq:rabbitmq:latest
输出包括指向许可条款的 licenseTextLink,并指示 accepted 的值为 true:
{
"accepted": true,
"additionalProperties": {},
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.MarketplaceOrdering/offertypes/bitnami/offers/rabbitmq/plans/rabbitmq",
"licenseTextLink": "https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_BITNAMI%253a24RABBITMQ%253a24RABBITMQ%253a24IGRT7HHPIFOBV3IQYJHEN2O2FGUVXXZ3WUYIMEIVF3KCUNJ7GTVXNNM23I567GBMNDWRFOY4WXJPN5PUYXNKB2QLAKCHP4IE5GO3B2I.txt",
"name": "rabbitmq",
"plan": "rabbitmq",
"privacyPolicyLink": "https://bitnami.com/privacy",
"product": "rabbitmq",
"publisher": "bitnami",
"retrieveDatetime": "2019-01-25T20:37:49.937096Z",
"signature": "XXXXXXLAZIK7ZL2YRV5JYQXONPV76NQJW3FKMKDZYCRGXZYVDGX6BVY45JO3BXVMNA2COBOEYG2NO76ONORU7ITTRHGZDYNJNXXXXXX",
"type": "Microsoft.MarketplaceOrdering/offertypes"
}
若要接受条款,请键入:
az vm image terms accept --urn bitnami:rabbitmq:rabbitmq:latest
使用映像参数部署全新 VM
如果已有映像的相关信息,可以使用 az vm create 命令来进行部署。
若要部署没有计划信息的映像(例如,来自 Canonical 的最新 Ubuntu Server 18.04 映像),请传递 --image 的 URN:
az group create --name myURNVM --location westus
az vm create \
--resource-group myURNVM \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image Canonical:UbuntuServer:18.04-LTS:latest
对于带有购买计划参数的映像(例如由 Bitnami 认证的 RabbitMQ 映像),需要为 --image 传递 URN,同时提供购买计划参数:
az group create --name myPurchasePlanRG --location westus
az vm create \
--resource-group myPurchasePlanRG \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image bitnami:rabbitmq:rabbitmq:latest \
--plan-name rabbitmq \
--plan-product rabbitmq \
--plan-publisher bitnami
如果收到有关接受映像条款的消息,请查看接受条款部分。 请确保 az vm image terms accept 的输出返回值 "accepted": true,,表明你已接受映像的条款。
将现有 VHD 与购买计划信息配合使用
如果来自 VM 的现有 VHD 是使用付费 Azure 市场映像创建,则在从该 VHD 创建全新 VM 时,可能需要提供购买计划信息。
如果你仍有原始 VM 或有使用同一市场映像创建的其他 VM,则可以使用 az vm get-instance-view 从其中获取计划名称、发布者和产品信息。 此示例获取 myResourceGroup 资源组中名为 myVM 的 VM,然后显示购买计划信息 。
az vm get-instance-view -g myResourceGroup -n myVM --query plan
如果在删除原始 VM 之前未获得计划信息,则可提交支持请求。 他们将需要 VM 名称、订阅 ID 和删除操作的时间戳。
获得计划信息后,可以使用 --attach-os-disk 参数指定 VHD 来创建新的 VM。
az vm create \
--resource-group myResourceGroup \
--name myNewVM \
--nics myNic \
--size Standard_DS1_v2 --os-type Linux \
--attach-os-disk myVHD \
--plan-name planName \
--plan-publisher planPublisher \
--plan-product planProduct
后续步骤
若要使用映像信息快速创建虚拟机,请参阅使用 Azure CLI 创建和管理 Linux VM。