如何使用 Azure CLI 在 Azure 市场中查找 Linux VM 映像
本主题介绍如何使用 Azure CLI 在 Azure 市场中查找 VM 映像。 使用 CLI、资源管理器模板或其他工具以编程方式创建 VM 时,使用此信息指定市场映像。
还可以使用 Azure 市场店面、Azure 门户或 Azure PowerShell 浏览可用的映像和产品/服务。
请确保已安装最新版的 Azure CLI 且已登录到 Azure 帐户 (az login
)。
术语
Azure 中的市场映像具有以下属性:
- 发布者:创建映像的组织。 示例:Canonical、MicrosoftWindowsServer
- 产品/服务:发布者创建的一组相关映像的名称。 示例:Ubuntu Server、WindowsServer
- SKU:产品/服务的实例,例如分发的主要版本。 示例:16.04-LTS、2016-Datacenter
- 版本:映像 SKU 的版本号。
若要在以编程方式部署 VM 时标识市场映像,请以参数的形式单独提供这些值。 有些工具接受映像 URN,它将这些值合并,值之间用冒号 (:) 字符隔开:发布者:产品/服务:Sku:版本。 在 URN 中,可将版本号替换为“latest”,这会选择最新的映像版本。
如果映像发布者提供附加许可条款和购买条款,则必须接受这些条款并启用编程部署。 以编程方式部署 VM 时,还需要提供“购买计划”参数。 请参阅部署具有市场条款的映像。
Note
在 Azure 中国区使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud
来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud
。
列出常用映像
运行 az vm image list 命令,无需选择 --all
选项即可在 Azure 市场中查看常用 VM 映像的列表。 例如,运行以下命令以表格形式显示缓存的常用映像列表:
az vm image list --output table
输出包括映像 URN(Urn 列中的值)。 使用其中一个常用市场映像创建 VM 时,可选择指定 UrnAlias(一种简短格式,如 UbuntuLTS)。
You are viewing an offline list of images, use --all to retrieve an up-to-date list
Offer Publisher Sku Urn UrnAlias Version
------------- ---------------------- ------------------ -------------------------------------------------------------- ------------------- ---------
CentOS OpenLogic 7.3 OpenLogic:CentOS:7.3:latest CentOS latest
CoreOS CoreOS Stable CoreOS:CoreOS:Stable:latest CoreOS latest
Debian credativ 8 credativ:Debian:8:latest Debian latest
openSUSE-Leap SUSE 42.3 SUSE:openSUSE-Leap:42.3:latest openSUSE-Leap latest
SLES SUSE 12-SP2 SUSE:SLES:12-SP2:latest SLES latest
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:latest UbuntuLTS latest
...
查找特定映像
若要在市场中查找特定 VM 映像,请结合使用 az vm image list
命令和 --all
选项。 此版本命令完成需要一些时间,且会返回冗长输出,因此通常可按 --publisher
或其他参数筛选列表。
例如,以下命令显示所有 Debian 产品/服务(请记住,不使用 --all
开关时,只搜索常见映像的本地缓存):
az vm image list --offer Debian --all --output table
部分输出:
Offer Publisher Sku Urn Version
------- ----------- ----------------- ----------------------------------------------- --------------
...
Debian credativ 7 credativ:Debian:7:7.0.201602010 7.0.201602010
Debian credativ 7 credativ:Debian:7:7.0.201603020 7.0.201603020
Debian credativ 7 credativ:Debian:7:7.0.201604050 7.0.201604050
Debian credativ 7 credativ:Debian:7:7.0.201604200 7.0.201604200
Debian credativ 7 credativ:Debian:7:7.0.201606280 7.0.201606280
Debian credativ 7 credativ:Debian:7:7.0.201609120 7.0.201609120
Debian credativ 7 credativ:Debian:7:7.0.201611020 7.0.201611020
Debian credativ 8 credativ:Debian:8:8.0.201602010 8.0.201602010
Debian credativ 8 credativ:Debian:8:8.0.201603020 8.0.201603020
Debian credativ 8 credativ:Debian:8:8.0.201604050 8.0.201604050
Debian credativ 8 credativ:Debian:8:8.0.201604200 8.0.201604200
Debian credativ 8 credativ:Debian:8:8.0.201606280 8.0.201606280
Debian credativ 8 credativ:Debian:8:8.0.201609120 8.0.201609120
Debian credativ 8 credativ:Debian:8:8.0.201611020 8.0.201611020
Debian credativ 8 credativ:Debian:8:8.0.201701180 8.0.201701180
Debian credativ 8 credativ:Debian:8:8.0.201703150 8.0.201703150
Debian credativ 8 credativ:Debian:8:8.0.201704110 8.0.201704110
Debian credativ 8 credativ:Debian:8:8.0.201704180 8.0.201704180
Debian credativ 8 credativ:Debian:8:8.0.201706190 8.0.201706190
Debian credativ 8 credativ:Debian:8:8.0.201706210 8.0.201706210
Debian credativ 8 credativ:Debian:8:8.0.201708040 8.0.201708040
...
通过 --location
、--publisher
和 --sku
选项应用类似的筛选器。 可以在筛选器上执行部分匹配,如搜索 --offer Deb
以查找所有 Debian 映像。
如果没有使用 --location
选项指定一个特定位置,则将返回默认位置的值。 (通过运行 az configure --defaults location=<location>
设置不同默认位置。)
例如,以下命令列出了“中国北部”位置中的所有 Debian 8 SKU:
az vm image list --location chinanorth --offer Deb --publisher credativ --sku 8 --all --output table
部分输出:
Offer Publisher Sku Urn Version
------- ----------- ----------------- ----------------------------------------------- -------------
Debian credativ 8 credativ:Debian:8:8.0.201602010 8.0.201602010
Debian credativ 8 credativ:Debian:8:8.0.201603020 8.0.201603020
Debian credativ 8 credativ:Debian:8:8.0.201604050 8.0.201604050
Debian credativ 8 credativ:Debian:8:8.0.201604200 8.0.201604200
Debian credativ 8 credativ:Debian:8:8.0.201606280 8.0.201606280
Debian credativ 8 credativ:Debian:8:8.0.201609120 8.0.201609120
Debian credativ 8 credativ:Debian:8:8.0.201611020 8.0.201611020
Debian credativ 8 credativ:Debian:8:8.0.201701180 8.0.201701180
Debian credativ 8 credativ:Debian:8:8.0.201703150 8.0.201703150
Debian credativ 8 credativ:Debian:8:8.0.201704110 8.0.201704110
Debian credativ 8 credativ:Debian:8:8.0.201704180 8.0.201704180
Debian credativ 8 credativ:Debian:8:8.0.201706190 8.0.201706190
Debian credativ 8 credativ:Debian:8:8.0.201706210 8.0.201706210
...
浏览映像
在某个位置查找映像的另一种方法是,运行序列中的 az vm image list-publishers、az vm image list-offers 和 az vm image list-skus 命令。 可以使用这些命令确定以下值:
- 列出映像发布者。
- 对于给定的发布者,列出其产品。
- 对于给定的产品,列出其 SKU。
然后,对于所选 SKU,可以选择要部署的版本。
例如,以下命令列出了中国北部位置的映像发布者:
az vm image list-publishers --location chinanorth --output table
部分输出:
Location Name
---------- ----------------------------------------------------
chinanorth 128technology
chinanorth 1e
chinanorth 4psa
chinanorth 5nine-software-inc
chinanorth 7isolutions
chinanorth a10networks
chinanorth abiquo
chinanorth accellion
chinanorth accessdata-group
chinanorth accops
chinanorth Acronis
chinanorth Acronis.Backup
chinanorth actian-corp
chinanorth actian_matrix
chinanorth actifio
chinanorth activeeon
chinanorth advantech-webaccess
chinanorth aerospike
chinanorth affinio
chinanorth aiscaler-cache-control-ddos-and-url-rewriting-
chinanorth akamai-technologies
chinanorth akumina
...
使用此信息可以从特定发布者找到产品/服务。 例如,对于位于中国北部位置的 Canonical 发布者,请通过运行 azure vm image list-offers
查找产品/服务。 传递位置和发布者,如以下示例中所示:
az vm image list-offers --location chinanorth --publisher Canonical --output table
输出:
Location Name
---------- -------------------------
chinanorth UbuntuServer
可以看到,在中国北部区域,Canonical 在 Azure 上发布了 UbuntuServer 产品。 但是,有哪些 SKU 呢? 要获取这些值,请运行 azure vm image list-skus
,并对找到的位置、发布者和产品/服务进行设置:
az vm image list-skus --location chinanorth --publisher Canonical --offer UbuntuServer --output table
输出:
Location Name
---------- -----------------
chinanorth 12.04.3-LTS
chinanorth 12.04.4-LTS
chinanorth 12.04.5-LTS
chinanorth 14.04.0-LTS
chinanorth 14.04.1-LTS
chinanorth 14.04.2-LTS
chinanorth 14.04.3-LTS
chinanorth 14.04.4-LTS
chinanorth 14.04.5-LTS
chinanorth 16.04-LTS
chinanorth 16.04.0-LTS
chinanorth 17.10
chinanorth 18.04-LTS
chinanorth 18.10
最后,使用 az vm image list
命令查找所需的特定版本的 SKU,例如,16.04-LTS:
az vm image list --location chinanorth --publisher Canonical --offer UbuntuServer --sku 16.04-LTS --all --output table
部分输出:
Offer Publisher Sku Urn Version
------------ ----------- --------- ------------------------------------------------ ---------------
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201611220 16.04.201611220
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201611300 16.04.201611300
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201612050 16.04.201612050
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201612140 16.04.201612140
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201612210 16.04.201612210
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201701130 16.04.201701130
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201702020 16.04.201702020
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201702200 16.04.201702200
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201702210 16.04.201702210
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201702240 16.04.201702240
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201703020 16.04.201703020
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201703030 16.04.201703030
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201703070 16.04.201703070
UbuntuServer Canonical 16.04-LTS Canonical:UbuntuServer:16.04-LTS:16.04.201703270 16.04.201703270
...
现在,可通过记下 URN 值准确地选择想要使用的映像。 通过 az vm create 命令创建 VM 时,可将此值与 --image
参数一起传递。 记住,可选择将 URN 中的版本号替换为“latest”。 此版本始终是映像的最新版本。
如果使用资源管理器模板部署 VM,请在 imageReference
属性中单独设置映像参数。 请参阅模板参考。
部署具有市场条款的映像
Azure 市场中的某些 VM 映像具有附加许可条款和购买条款,你必须接受这些条款,然后才能以编程方式部署这些映像。
若要从此类映像部署 VM,需要同时接受映像的条款并启用编程部署。 只需对每个订阅执行一次此操作。 此后,每次以编程方式从映像部署 VM 时,还需要指定“购买计划”参数。
以下部分介绍如何执行这些操作:
- 了解市场映像是否具有附加许可条款
- 以编程方式接受条款
- 以编程方式部署 VM 时提供购买计划参数
查看计划属性
若要查看映像的购买计划信息,请运行 az vm image show 命令。 如果输出中的 plan
属性不是 null
,则映像有条款,在以编程方式部署前需要接受该条款。
例如,Canonical Ubuntu Server 16.04 LTS 映像没有附加条款,因为 plan
信息为 null
:
az vm image show --location chinanorth --urn Canonical:UbuntuServer:16.04-LTS:latest
输出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/chinanorth/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/16.04-LTS/Versions/16.04.201801260",
"location": "chinanorth",
"name": "16.04.201809120",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
后续步骤
若要使用映像信息快速创建虚拟机,请参阅使用 Azure CLI 创建和管理 Linux VM。