前面了解了什么是Docker Machine,并且安装了docker-machine。接下来我们一起来看下如何创建machine
前提条件:(我以我的环境说明)
(1)四台主机已安装ubuntu 16.04.3,网络配置如下:
Ubuntu-001 192.168.1.107
Ubuntu-002 192.168.1.109
Ubuntu-003 192.168.1.106
Ubuntu-004 192.168.1.111
(2)Ubuntu-001已安装docker-machine
创建machine
首先docker-machine ls查询当前创建的machine列表,当前还没有machine
配置远程主机可以免交互认证登录:
在Ubuntu-001主机上执行:
root@Ubuntu-001:~# ssh-keygen -t rsa#生成密钥对,一路enter即可
root@Ubuntu-004:~# visudo #远程主机上执行该命令,添加Defaults visiblepw一行
root@Ubuntu-001:~# docker-machine create --driver generic--generic-ip-address=192.168.1.111 Ubuntu-004
从create命令的执行过程可以看出,创建machine主要做了如下动作:
ssh登录远程主机
安装docker
拷贝证书
配置dockerdaemon
启动docker
受制于网络状态的影响,安装docker这一步可能会比较长的时间,这时候我们可以在远程主机上不断的ps查询,观察到docker确实正在被安装。
在远程主机上执行docker version,发现docker确实已经安装成功了。
至此第一个machine创建成功。
对于其他Ubuntu-001(本机),Ubuntu-002, Ubuntu-003,执行上述相同的命令后:
这时候4台主机的machine已经全部创建成功,但是你可能发现为什么Ubuntu-003上的docker版本是17.09.1,与其他不同。这里我需要解答一下,我在学习docker-machine的时候就有个疑问能不能把已安装docker的主机纳入docker-machine的管理呢?查询docker-machine命令发现docker-machine并没有类似于add的操作,于是我简单的认为这种情况没法解决。我于是在Ubuntu-001上对Ubuntu-003(实际上我之前已经在这台主机上安装了docker,版本是17.09.1)执行docker-machine create --driver generic --generic-ip-address=192.168.1.106 Ubuntu-003发现命令很快返回成功了,于是我利用docker-machine ls查看Ubuntu-003也纳入管理了,于是我得出这样的结论:
使用docker-machinecreate创建machine时,会检测主机是否已经安装docker,如果安装就简单做相应的检查动作即可,如果未安装,则会安装最新版的docker。我个人将这种操作称为间接方式纳入管理。
领取专属 10元无门槛券
私享最新 技术干货