免责声明:我知道,有几个问题涉及这个问题(例如“较新的 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 项目不能至少在小版本中提供某种向后兼容性?)