Docker客户端版本高于服务端版本的错误处理_Error response from daemon: client is newer than server

有时候我们编辑好了docker-compose.yml,执行的时候却出现了如下的错误:

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

这种情况的发生,错误提示已经说的很明显了,就是客户端的版本大于服务器端的版本,简单点说就是客户端和服务端的版本不一致造成的。

知道了原因,现在就来看解决办法,搜了一大圈,网上有两个解决办法:

解决办法1:

处理思路就是将客户端版本降级,具体操作如下:

#首先直接运行以下代码:
$ export DOCKER_API_VERSION=1.19
#本次是可以了,还可以写入profile文件里
$ nano /etc/profile
#将以下代码放入末尾 export DOCKER_API_VERSION=1.19
#ctrl+o保存,ctrl+x退出,并运行以下代码立即生效
$ source /etc/profile

操作完后,再执行docker version查看docker的客户端和服务端的版本,就已经一致了。

这样再执行docker语句创建容器或者执行docker-compose的命令已经完全正常了。

解决办法2(仅参考):

如果升级 docker 客户端,您将无法使用旧的 docker-machine 虚拟机。 实际上,您可以使用 docker-machine update vm-name 强制升级,但如果您使用其他发行版(boot2docker 除外)作为 docker 主机(如 coreos、atomic、rancheros),则可能会失败。

我正在使用 dvm(Docker Version Manager)来管理多个 docker 客户端版本。

dvm的安装只需使用一下命令安装即可。

curl -sL https://howtowhale.github.io/dvm/downloads/latest/install.sh | sh

如果服务器下载不了,也可以在本机直接到它的github去下载zip,然后上传到服务器上,解压,执行里面的install.sh即可。一般都能正常安装。

sudo unzip dvm-1.0.3.zip
cd dvm-1.0.3
sudo ./install.sh

安装效果图如下:

安装后可以通过 dvm -v查看版本号,如果可以查看到版本号就说明安装好了。

当然,也可以通过dvm -h查看帮助,可以看到所有可以使用的命令。如下图:

最常用的命令就是:

dvm ls 查看目前安装的版本;

dvm current 查看目前使用的版本;

dvm install <version> 安装对应的版本;

dvm uninstall <version>卸载对应的版本;

至于docker的版本以及对应的api版本,可以在这里查看:

https://dockerdocs.cn/engine/api/

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值