Docker-来自守护程序的错误响应:客户端比服务器更新
使用Docker machine创建新机器后,我得到以下错误: 如何修复此问题?Docker-来自守护程序的错误响应:客户端比服务器更新,docker,docker-compose,docker-machine,docker-api,Docker,Docker Compose,Docker Machine,Docker Api,使用Docker machine创建新机器后,我得到以下错误: 如何修复此问题?docker机器升级 docker-machine upgrade <your-machine> 我会成功的。这可能会发生——就像我所做的那样——即使你没有使用RCs,而且你的机器是新创建的。这可能是由于ISO缓存问题造成的。错误已在中注释 如果docker客户端为1.9.x,服务器运行docker 1.8.x, 观察到错误消息 如果升级docker客户端,您将无法使用旧的docker机器VM。实际
docker机器升级
docker-machine upgrade <your-machine>
我会成功的。这可能会发生——就像我所做的那样——即使你没有使用RCs,而且你的机器是新创建的。这可能是由于ISO缓存问题造成的。错误已在中注释
如果docker客户端为1.9.x,服务器运行docker 1.8.x,
观察到错误消息
如果升级docker客户端,您将无法使用旧的docker机器VM。实际上,您可以使用
docker machine upgrade vm name
强制升级,但如果您使用其他发行版(boot2docker除外)作为docker主机,如coreos、atomic、rancheros,则可能会失败
我使用Carina管理多个docker客户端版本
只需使用$curl-sL安装即可https://download.getcarina.com/dvm/latest/install.sh |嘘
(linux和mac安装)并运行dvm ls
列出已安装的版本,dvm install 1.9.0
安装版本,dvm use 1.8.1
更改客户端版本
非常简单和强大。=)
注意,为了您的安全,在运行脚本之前,请务必查看从internet下载的脚本
希望对您有所帮助显然,此错误是由于docker机器进入睡眠状态所致。下面是为我解决这个问题的神奇命令:
$ 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)
从现在起,它应该可以工作。我在1.10.0-rc4中遇到了同样的问题,结果是,在安装较新的Docker工具箱时,boot2docker没有正确更新。我必须手动删除boot2docker:
sudo rm -rf /usr/local/share/boot2docker
您还可以删除工具箱的其余部分:
sudo rm -rf /usr/local/bin/docker*
sudo rm -rf /Applications/Docker
最后安装所需版本的Docker Toolbox
请参阅的官方卸载脚本。如果有人碰巧遇到此错误,但未使用docker machine,则可以通过在客户端的环境变量中指定较旧的API版本来解决此问题:
export DOCKER_API_VERSION=<version>
并重试docker
命令
.在ubuntu发行版上,如果docker作为服务运行,则在apt更新后发生。 客户端已更新,但旧版本的服务器仍在运行 在这种情况下,只需执行以下操作:
sudo service docker restart
证实了这在“Ubuntu16.04.1LTS”上也有效哇,当时我认为我对docker,inc.没什么印象。。。为什么默认情况下它自己不这样做呢?谢谢!!似乎解决了我的问题,什么是?你的docker机器的名称,通常是default或devIt,就这么简单!如果有疑问,请重新引导/启动!
export DOCKER_API_VERSION=1.19
sudo service docker restart