上一篇:Docker的那些事儿—如何安装docker machine?
创建machine
首先docker-machine ls查询当前创建的machine列表,当前还没有machine
配置远程主机可以免交互认证登录:
在Ubuntu-001主机上执行:
root@Ubuntu-001:~# ssh-keygen -t rsa #生成密钥对,一路enter即可
root@Ubuntu-001:~# ssh-copy-id root@192.168.1.111 #将公钥拷贝到远程主机
root@Ubuntu-001:~# ssh root@192.168.1.111 #如果不提示密码登录主机说明成功
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主要做了如下动作:
1、ssh登录远程主机
2、安装docker
3、拷贝证书
4、配置docker daemon
5、启动docker
受制于网络状态的影响,安装docker这一步可能会比较长的时间,这时候我们可以在远程主机上不断的ps查询,观察到docker确实正在被安装
在远程主机上执行docker version,发现docker确实已经安装成功了。
至此第一个machine创建成功
对于其他Ubuntu-001(本机),
Ubuntu-002, Ubuntu-003,执行上述相同的命令后
这时候4台主机已经全部创建成功,但是细心地人可能发现为什么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-machine create 创建machine时,会检测主机是否已经安装docker,如果安装就简单做相应的检查动作即可,如果未安装,则会安装最新版的docker。我个人将这种操作称为间接方式纳入管理。
下一篇:Docker的那些事儿—如何利用docker-machine配置管理machine?
网友评论
我的内网机器配置了http_proxy,在远程host上也配置好了,测试能成功访问外网
当我执行 docker-machine create -d generic --generic-ip-address=10.125.26.174 HOST1 时,
无法在远程HOST1安装docker并且反复刷报错:
Error getting SSH command to check if the daemon is up: ssh command error:
command : sudo docker version
err : exit status 1
output : sudo: docker: command not found
然后必须要在远程主机上手动安装好docker、并且启动后,才能加入到docker-machine中,远程主机如果docker没启动,都无法成功