23.3 使用Machine

Docker Machine通过多种后端驱动来管理不同的资源,包括虚拟机、本地主机和云平台等。

通过-d选项可以选择支持的驱动类型。

1.虚拟化平台

可以通过virtualbox驱动支持本地(需要已安装virtualbox)启动一个虚拟机并配置为Docker主机:


  1. $ docker-machine create --driver=virtualbox vbox-instance

将启动一个全新的虚拟机,并安装Docker引擎。

此外,还支持Microsoft Hyper-V虚拟化平台。

2.本地主机

这种驱动适合主机操作系统和SSH服务都已经安装好,需要对其安装Docker引擎。

首先确保本地主机可以通过user账号的key直接通过ssh连到目标主机。使用generic类型的驱动,注册一台Docker主机,命名为test:


  1. $ docker-machine create -d generic --generic-ip-address=10.0.100.102 --generic-
  2. ssh-user=user test
  3. Running pre-create checks...
  4. Creating machine...
  5. (test) OUT | Importing SSH key...
  6. Waiting for machine to be running, this may take a few minutes...
  7. Machine is running, waiting for SSH to be available...
  8. Detecting operating system of created instance...
  9. Detecting the provisioner...
  10. Provisioning created instance...
  11. ...

从命令输出上可以看到,Machine通过SSH连接到指定节点,并在上面安装Docker引擎。

创建主机成功后,可以通过docker-machine ls命令来查看注册到本地管理列表中的Docker主机:


  1. $ docker-machine ls
  2. NAME ACTIVE DRIVER STATE URL SWARM
  3. test - generic Running tcp://10.0.100.102:2376

还可以通过inspect命令查看指定Docker主机的具体信息。

3.云平台驱动

以Amazon Web Services云平台为例,配置其上的虚拟机为Docker主机。

需要指定Access Key ID、Secret Access Key、VPC ID等信息。例如:


  1. $ docker-machine create --driver amazonec2 --amazonec2-access-key AKI*******
  2. --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-******
  3. aws_instance

其他支持的云平台还包括Microsoft Azure、Digital Ocean、Exoscale、Google Compute Engine、Rackspace、IBM Softlayer等。