使用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——如果你不是这样想的,我很遗憾。
最合理的办法是本地