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

时间:2015-12-01 07:55:01

标签: docker docker-compose docker-machine docker-api

使用Docker Machine创建新计算机后,我收到以下错误:

enter image description here

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

我该如何解决这个问题?

6 个答案:

答案 0 :(得分:40)

docker-machine upgrade <your-machine>

会做到这一点。这可能发生 - 就像它对我一样 - 即使您不使用RC并且您的机器是新创建的。这可能是由于ISO缓存问题。该错误在this thread中进行了评论。

  

如果docker客户端是1.9.x且服务器正在运行docker 1.8.x,   观察到错误消息。

答案 1 :(得分:31)

如果有人碰巧遇到此错误,但未使用docker-machine,则可以通过在客户端的环境变量中指定较旧的API版本来解决此问题:

export DOCKER_API_VERSION=<version>

例如:

export DOCKER_API_VERSION=1.19

并重试docker命令。

Reference

答案 2 :(得分:11)

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

在这种情况下,只需执行:

sudo service docker restart

答案 3 :(得分:3)

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

我正在使用Carina来管理多个docker客户端版本。

只需安装$ 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更改客户端版本。< / p>

非常简单和强大。 =)

为了您的安全,请注意在运行前从互联网上下载的脚本。

希望有所帮助

答案 4 :(得分:1)

显然这个错误是由于docker-machine&#34;睡着了#34;这是为我解决它的神奇命令:

$ docker-machine restart default

或者用您的机器名称替换default。 结果是:

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

根据建议,您可能需要:

$ 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)

从现在开始它应该有用。

答案 5 :(得分:-1)

我在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。

请参阅on GitHub for OS X here.

的官方卸载脚本