Docker错误:客户端和服务器没有相同的版本

soe*_*nke 83 docker boot2docker docker-machine

由于我刚刚将Docker更新为1.1.0,我得到:

来自守护程序的错误响应:客户端和服务器没有相同的版本(客户端:1.13,服务器:1.12)

你知道怎么解决这个问题吗?

我切换回1.0.1,一切都恢复正常.

Abe*_*iño 127

看起来您需要在安装boot2docker后升级VM:

如果从boot2docker 0.12或更高版本升级,则可以使用boot2docker stop && boot2docker download && boot2docker up更新现有虚拟机(使用安装程序升级后) - 并且您不会丢失现有数据.

(https://github.com/boot2docker/osx-installer/releases/tag/v1.1.0)

  • 您不再需要使用docker命令行工具的brew版本.Boot2Docker提供了正确的版本. (5认同)
  • 还有brew uninstall docker && brew install docker完成了这项工作 (3认同)

小智 18

如果您更新了Docker,但服务尚未重新启动,则会发生这种情况.然后,您将尝试使用更新的客户端连接到Docker守护程序,而守护程序(在更新之前已经运行)仍在运行旧版本.

要解决此问题,请重新启动服务:

sysV init:

service docker restart

systemd:

systemctl daemon-reload

systemctl restart docker


Pet*_*ter 13

如果您使用docker-machine管理本地基于VirtualBox的计算机,解决方案就像boot2docker一样简单:

docker-machine upgrade MACHINE_NAME
Run Code Online (Sandbox Code Playgroud)

它要求docker-machine下载最新版本boot2docker.iso并将其作为新的根文件系统放入升级后的VM中.

顺便说一句,VirtualBox支持的docker机器只有readonly的根文件系统.这意味着任何手动更新都无法在机器重启后继续存在.这对我来说是一个惊喜.


Rim*_*ian 12

我有最新版本的boot2docker,docker和虚拟框,但仍然收到此消息.看来跑步brew upgrade boot2docker并不是最好的主意.在运行时boot2docker upgrade,我被要求设置一堆环境变量,然后它对我有用.

Boot2docker让我设置这些(见最后几行):

$ boot2docker upgrade
Latest release for boot2docker/boot2docker is v1.3.0
Downloading boot2docker ISO image...
Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.0/boot2docker.iso
    to /Users/.../.boot2docker/boot2docker.iso
Waiting for VM and Docker daemon to start...
.........oooooooooooooo
Started.
Writing /Users/.../.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/.../.boot2docker/certs/boot2docker-vm/key.pem

To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp://192.168.59.103:2376
    export DOCKER_CERT_PATH=/Users/.../.boot2docker/certs/boot2docker-vm
    export DOCKER_TLS_VERIFY=1
Run Code Online (Sandbox Code Playgroud)

可以将这三条线一次切割并粘贴到您的终端中.

要检查它们是否正确:

$ env
Run Code Online (Sandbox Code Playgroud)

  • 这个命令也应该这样做:`$(boot2docker shellinit)` (2认同)

Mar*_*ani 10

我试图用更新的客户端查询Docker服务器:

  • 服务器API版本:1.21
  • 客户端API版本1.22

我的解决方案就是:

export DOCKER_API_VERSION=1.21

参考:https: //docs.docker.com/engine/reference/commandline/cli/