jacky4955 发表于 2018-5-26 10:52:09

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

  服务通过Docker Swarm部署后,如果在开发机本地执行类似如下命令: ``` docker -H tcp://swarm.alibaba.net:8443 exec -it $containerId /bin/bash ``` 如果开发机本地Docker版本高于服务器上的版本(这是很容易发生的,稍微Geek的同学是无法容忍本地软件不是最新这一事实的!),就会得到类似如下错误:
  服务通过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 versionClient:
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 Nov3 19:20:09 UTC 2015
OS/Arch:      darwin/amd64  最后执行最初的命令。祝好!

  本文出自https://yq.aliyun.com/articles/61906
页: [1]
查看完整版本: 使用dvm解决Docker的Daemon和Client版本不一致问题