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的官方卸载脚本。