docker-machine为节点安装指定版本的docker-ce的思路

对于指定版本的问题,翻遍官网文档和github上的issue,始终没有一个好的回答,而且该产品的开发人员不知道为什么总不正面提供方法,也许是为了推广新版本,

但是这样真的好吗?docker swarm要求docker版本统一,docker-machine只提供最新版的升级捷径,并且默认安装的也是最新版,

假设我们线上的环境二十个节点部了一次已经都是a版本了,过了一个月docker发布了b版本,而我们又想要增加十个线上节点,难道挨个去升级一遍?

我始终想不通docker-machine为什么这样难为它的用户,谁能告诉我?

----------------------------------------------------分割线-------------------------正文开始---------------------------------------

在安装的时候我们是可以指定安装脚本的:

docker-machine为节点安装指定版本的docker-ce的思路

观察这个默认网站(https://get.docker.com 其实还有一个 https://test.docker.com,后边这个才是始终是最新版本),就是一个shell脚本,

docker-machine为节点安装指定版本的docker-ce的思路

通过分析,得出修改其中的pkg_version变量为我们需要的版本号,就可以达到我们想要的效果,

接下来要做的就是复制这个shell,按照我们得出的结论,改一下,搭个服务器放上边,然后在使用docker-machine create的时候指定一下这个地址为安装docker的shell的地址就可以了。

这里我用的centos,直接修改centos的分支,写死了一个版本号:

docker-machine为节点安装指定版本的docker-ce的思路

可以看到 成功安装指定版本

docker-machine为节点安装指定版本的docker-ce的思路

使用的命令如下:

docker-machine create --driver generic
--engine-install-url=http://www.liuyuxiang.com:7777/index --generic-ip-address=192.168.31.13 node3

其中,http://www.liuyuxiang.com:7777/index 这个地址就是我临时使用nginx搭的

(完毕)

上一篇:IT人生思考


下一篇:tar命令参数详解