docker:客户端比服务器新

docker:客户端比服务器新

免责声明:我知道,有几个问题涉及这个问题(例如“较新的 Docker 客户端与较旧的 Docker 主机“ 或者 ”守护进程的错误响应:客户端比服务器新”)。但是它们都没有真正针对全部复杂性,而且我也没有处理 boot2docker。

情况

我设置了一台客户端计算机(我的笔记本电脑)和四个 docker 守护进程(1 个本地,3 个远程,位于不同的服务器上)。当我尝试管理其中一个远程 docker 守护进程时,我经常收到以下消息:

Error response from daemon: client is newer than server (client API version: X, server API version: Y)

(其中X > Y和通常|X-Y| ≤ 0.3;例如X = 1.21, Y = 1.19

大多数情况下,原因是我的客户端计算机的系统相当新,而服务器通常使用较旧的版本,因此不应该经常无法更新。此外,如果我总是更新服务器,我必须同时更新所有三个服务器,而其他使用服务器的人也必须依次更新他们的客户端。(而每个服务器的协作者组都不同。)

问题

有什么方法可以设置我的客户端,使其能够与不同的旧 API 版本进行通信?

(为什么 docker 项目不能至少在小版本中提供某种向后兼容性?)

答案1

根据这个github 评论docker 客户端可以与较新的服务器通信,但较新的客户端无法与较旧的服务器通信。因此,您可以继续更新 docker 服务器,但您也应该敦促用户更新他们的客户端,因为兼容性肯定存在限制。

有一个提议拉取请求这将允许您指定客户端与服务器通信时使用的 API 版本,但尚未被接受。

相关内容