Reference: http://www.cnblogs.com/sparkdev/p/7077333.html
官方文档(中国区):https://docs.azure.cn/zh-cn/articles/compute/aog-virtual-machines-docker-manage-vm
MY OS:Xenial
已经安装了Docker与Docker-machine ,
我们的目标是通过 Docker Machine 在 Azure 上面创建一台安装了 Docker 的虚拟主机。因为 Azure 上的所有资源都必须通过订阅账号才能授权使用,所以我们首先得准备一个 Azure 的订阅账号。国内的 Azure 一直在搞一元试用的活动,赶快去申请一个吧!
Azure 建议我们把资源通过 resource group 组织起来。为了演示方便,我们新创建一个名为 nickcontainer 的 resource group 存放将要创建的虚机:
我直接申请了一元账户开始操作
docker-machine create \
--driver azure \ --azure-environment AzureChinaCloud \ --azure-subscription-id XXXXXXXXXXXXX \ --azure-location "chinaeast" \ --azure-size Standard_A0 \ --azure-image canonical:UbuntuServer:16.04.0-LTS:latest \ --azure-ssh-user nick \ --azure-resource-group nickcontainer \ --azure-availability-set testvmtiggeras \ testvm1
r若是使用–azure-environment AzureChinaCloud
–azure-location 只有 “chinaeast”或”chinanorth”
很快创建成功:
参数详解
–driver azure
driver 参数告诉 Docker Machine 我们操作的对象在 Azure 云上,需要使用 Azure 相关的接口来进行操作。
–azure-environment AzurePublicCloud
其实存在多套相互独立的 Azure 云环境,比如国内的。所以需要用这个参数来指定具体的 Azure 云环境。默认值是 AzurePublicCloud,指向我们说的 Azure 国际版。连接国内版需要指定为 AzureChinaCloud。
–azure-subscription-id xxxxxxxxxxxxxxxxxxxxxxxxxx
这个是与你账号关联的订阅 ID,Azure 内部的操作都是依赖于这个 ID 的。
–azure-location “East Asia”
Azure 在全球各地部署了很多的数据中心,我们可以通过 location 指定创建的资源所在的位置。这个位置当然是越靠近用户越好,国内的国际版用户选择东亚稍微好一点。
–azure-size Standard_A0
Azuer 根据不同的 size(其实就是配置)对虚拟机进行收费,demo 中选择的 Standard_A0 大概是这个样子:
虽然配置不高,但作为 demo 来说已经足够用了。MS 提供了非常丰富的 size 可供选择,如果你要创建生产环境的虚机实例,可能需要选择每个月几十到几百美金的实例。
–azure-image canonical:UbuntuServer:16.04.0-LTS:latest
对于生产环境来说,虚机的镜像是至关重要的。Demo 中使用了 ubuntu server 16.04 的镜像,当然我们可以在这里指定 Azure 支持的任何虚拟机镜像。这点可比只能使用 boot2docker 的驱动强多了!
–azure-ssh-user nick
可以通过 SSH 登录到虚拟机中的用户,其实 Docker Machine 已经为这个用户配置了通过秘钥登录的相关信息。
–azure-resource-group nickcontainer
新创建的资源所属的 resource group。
Docker Machine 不仅可以创建虚机,还可以管理虚机。所谓的管理,仅仅是能够 stop、start 和 restart 吗?答案是可以有更多的功能,但是需要相关驱动的支持。比如 rm 命令,对于 azure 驱动来说,它是可以把刚才创建那一坨东西几乎全部干掉的!执行下面的命令:
$ docker-machine rm testvmtigger
这是一个很危险的操作,所以会有一个确认执行的步骤,然后就真的把 Azure 上的资源给干掉了(除了存储部分):