大数跨境
0
0

【Docker】使用dvm解决Docker的Daemon和Client版本不一致问题

【Docker】使用dvm解决Docker的Daemon和Client版本不一致问题 阿里云云栖号
2016-10-25
1
导读:本文使用dvm解决Docker的Daemon和Client版本不一致问题。

服务通过Docker Swarm部署后,如果在开发机本地执行类似如下命令:


docker -H tcp://swarm.alibaba.net:8443 exec -it $containerId /bin/bash


如果开发机本地Docker版本高于服务器上的版本(这是很容易发生的,稍微Geek的同学是无法容忍本地软件不是最新这一事实的!),就会得到类似如下错误:


Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.21)


怎么办?


你无法要求服务器为此而升级,也无法容忍为此降级本地或者申请一台和服务器的Docker相同版本的ECS——如果你不是这样想的,我很遗憾。


最合理的办法是本地安装多版本,并且可以随意切换。


首先给出本地当前版本


$ docker version

Client:

 Version:      1.12.1

 API version:  1.24

 Go version:   go1.7.1

 Git commit:   6f9534c

 Built:        Thu Sep 15 11:20:26 2016

 OS/Arch:      darwin/amd64

 Experimental: true


安装dvm


curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh

source /Users/erichan/.dvm/dvm.sh


安装和服务器相同版本的Docker,并且换过去


$ dvm install 1.9.0


$ dvm use 1.9.0                                                                                                                            

Now using Docker 1.9.0


$ dvm ls                                                                                                                                   

->  1.9.0

    system (1.12.1)


再来看本地当前版本


lient:

 Version:      1.9.0

 API version:  1.21

 Go version:   go1.4.3

 Git commit:   76d6bc9

 Built:        Tue Nov  3 19:20:09 UTC 2015

 OS/Arch:      darwin/amd64


最后执行最初的命令。祝好!

【声明】内容源于网络
0
0
阿里云云栖号
云栖官方内容平台,汇聚云栖365优质内容。
内容 3553
粉丝 0
阿里云云栖号 云栖官方内容平台,汇聚云栖365优质内容。
总阅读366
粉丝0
内容3.6k