客户端比服务器更新(客户端 API 版本:1.24,服务器 API 版本:1.21)

client is newer than server (client API version: 1.24, server API version: 1.21)

当我这样做时:

sudo docker version

我得到这个错误:

Error response from daemon:client is newer than server (client API version: 1.24, server API version: 1.21)

任何人都可以帮助我了解我必须做什么?

Docker 在客户端/服务器模型上 运行ning,每个 Docker 引擎版本都有特定的 API 版本。

release版本和Docker的API版本的组合如下:

https://docs.docker.com/engine/api/v1.26/#section/Versioning

根据上面的 table,Docker API v1.24 用于 Docker Engine 1.12.x 和 Docker API v1.21 用于 Docker Engine 1.9.x。服务器需要 API 等于或高于客户端的版本。

您有以下三个选项。

  1. 将服务器端升级到 Docker 引擎 1。12.x 或更高版本。
  2. 将客户端降级到引擎 1。9.x 或更低。
  3. 通过将 DOCKER_API_VERSION=1.21 导出到客户端的环境变量来降级 运行 时使用的 API 版本。

尝试使用以下命令设置版本:

export DOCKER_API_VERSION=1.23

它对我来说工作得很好并解决了问题。

其他答案并没有真正解释如何在 windows 机器上执行此操作。我无法访问 gui,所以我必须从 CLI 完成它。

我知道这很旧,但我摸索了一段时间,直到我终于弄明白了。所以,我希望这对某人有帮助。

Windows 用户

对于使用 windows 的人,您可以通过转到“高级系统设置”来设置环境变量。

如果您需要通过命令行来完成。这对我有用:

setx /M DOCKER_API_VERSION "1.23"

此外,您还可以设置永久主机位置,然后 运行 您的命令不使用 -H 选项,方法如下:

setx /M DOCKER_HOST "192.168.207.131:2375"

注意:设置变量后,您必须关闭命令行并打开一个新命令行才能使更改生效。

注意 2:如果对远程系统进行更改,您需要注销并重新登录才能使更改生效。