Docker – 来自守护进程的错误响应:客户端比服务器更新

使用Docker Machine创build新机器后,出现以下错误:

在这里输入图像说明

$ docker ps Error response from daemon: client is newer than server(client API version 1.21, server API version: 1.19) 

我怎样才能解决这个问题?

 docker-machine upgrade <your-machine> 

会做的伎俩。 即使您没有使用RC,并且您的机器是新创build的,也可能发生这种情况 – 就像我这样做。 这将是由于ISOcaching问题。 错误在这个线程中被评论。

如果docker客户端是1.9.x并且服务器运行docker 1.8.x,则会出现错误消息。

如果有人碰巧得到这个错误,但是没有使用docker-machine ,还有另外一种方法可以通过在客户端的一个环境variables中指定一个旧的API版本来解决这个问题:

 export DOCKER_API_VERSION=<version> 

例如:

 export DOCKER_API_VERSION=1.19 

并重试docker命令。

参考 。

如果docker作为一个服务运行,在ubuntu的distrib上它会发生在apt更新之后。 客户端已更新,但旧版本的服务器仍在运行。

在这种情况下,只需做一个:

 sudo service docker restart 

如果你升级你的docker客户端,你将无法使用旧的docker-machine虚拟机。 其实你可以用docker-machine upgrade vm-name来强制升级,但是如果你正在和其他的发行版(boot2docker除外)一起作为docker主机,比如coreos,atomic,rancheros,它可能会失败。

我正在使用Carinapipe理多个docker客户端版本。

只需安装$ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh $ curl -sL https://download.getcarina.com/dvm/latest/install.sh | sh (linux和mac安装)并运行dvm ls列出已安装的版本, dvm install 1.9.0安装版本, dvm use 1.8.1更改您的客户端版本。

非常容易和强大。 =)

注意,为了您的安全,在运行之前,请务必先查看从互联网下载的脚本。

希望能帮助到你

显然这个错误是由于docker-machine “入睡”。 下面是为我解决这个问题的魔法命令:

 $ docker-machine restart default 

或者用您的机器名称replacedefault 。 结果是:

 $ docker-machine restart default Restarting "default"... Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command. 

如build议,您可能需要:

 $ docker-machine env default export DOCKER_TLS_VERIFY="1" export DOCKER_HOST="tcp://....." export DOCKER_CERT_PATH=".../.docker/machine/machines/default" export DOCKER_MACHINE_NAME="default" # Run this command to configure your shell: # eval $(docker-machine env default) 

所以你最终运行这个命令:

 $ eval $(docker-machine env default) 

从现在起它应该工作。

这个评论只对那些安装了默认机器的初学者有帮助。

 docker-machine upgrade default 

我在1.10.0-rc4中遇到了同样的问题,结果发现在安装新的Docker Toolbox时,boot2docker没有正确更新。 我必须手动删除boot2docker:

 sudo rm -rf /usr/local/share/boot2docker 

您也可以删除工具箱的其余部分:

 sudo rm -rf /usr/local/bin/docker* sudo rm -rf /Applications/Docker 

最后安装所需版本的Docker Toolbox。

请参阅GitHub for OS X的官方卸载脚本。