使用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 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

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

目录
相关文章
|
20天前
|
Ubuntu 关系型数据库 MySQL
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
|
1月前
|
Linux 数据安全/隐私保护 Docker
Docker 一键式部署方案丨 Linux服务器中安装配置指定版本R以及Rstudio server
Docker 一键式部署方案丨 Linux服务器中安装配置指定版本R以及Rstudio server
|
1月前
|
Docker 容器
Docker compose v1 与 v2版本区别
Docker Compose是用于定义和管理多容器Docker应用程序的工具。下面是Docker Compose版本1和版本2之间的一些区别:
112 0
|
1月前
|
Linux Docker 容器
|
1月前
|
Kubernetes Devops Shell
【DevOps系列】Docker Windows版本安装
【DevOps系列】Docker Windows版本安装
103 0
|
2月前
|
Java Linux Shell
centos7内网离线安装face_recognition、python、pip、CMake、dlib,离线升级gcc/切换gcc,文末有face_recognition的docker版本
公司项目需要人脸识别,本来app自带人脸识别,结果api支持的设备试了一圈就一个同事的华为Mate40Pro可以,所以使用无望。接着找了一下免费的java离线人脸识别sdk,发现虹软的确实简单好用,一会就在linux上弄好并测试通过了,然而在准备集成进去开写代码时,不小心看到了一眼首次激活需联网,后续方可离线使用,好吧,我们内网机器首次都不可能的,接着看了下离线激活方法,首先需要企业认证,这一步我们肯定没法做的,毕竟不是之前的小公司了,营业执照啥的随便给我肯定不行,直接放弃了。后来在同事推荐下看了下face_recognition这个项目,之前基本没用过python,于是有了漫长的踩坑之旅。
93 1
|
2月前
|
Linux 虚拟化 Docker
Linux环境下修改Docker版本
本文介绍了一种修改Docker版本的方法,此方法不会删除原本的配置文件、镜像等。
101 0
|
2月前
|
应用服务中间件 nginx Docker
【Docker】搭建私有镜像仓库(带有图形化界面版本)
【Docker】搭建私有镜像仓库(带有图形化界面版本)
96 0
|
2月前
|
监控 关系型数据库 MySQL
通过docker容器方式部署zabbix-5.2版本监控系统
通过docker容器方式部署zabbix-5.2版本监控系统
102 0
|
2月前
|
关系型数据库 MySQL Shell
推荐文章
更多