来自守护程序的 Selenoid 错误响应:客户端比服务器更新

Selenoid Error response from daemon: client is newer than server

尝试使用 cm 命令启动 Selenoid 时出错:

$ ./cm selenoid start —vnc
2017/10/26 13:19:57 Using Docker...
2017/10/26 13:19:57 registry.ping url=https://registry.hub.docker.com/v2/
2017/10/26 13:19:59 Failed to list images: Error response from daemon: client is newer than server (client API version: 1.29, server API version: 1.24)
2017/10/26 13:19:59 Downloading Selenoid...
2017/10/26 13:19:59 Fetching tags for image "aerokube/selenoid"...
2017/10/26 13:19:59 registry.tags url=https://registry.hub.docker.com/v2/aerokube/selenoid/tags/list repository=aerokube/selenoid
2017/10/26 13:20:00 Failed to pull image "aerokube/selenoid:1.3.8": Error response from daemon: client is newer than server (client API version: 1.29, server API version: 1.24)
2017/10/26 13:20:00 Failed to start: failed to pull Selenoid image

发生这种情况是因为 cm 中使用的 Docker 客户端版本不兼容并安装了 Docker 服务器。 cm 在内部使用与 docker 命令相同的官方 Go 客户端,因此任何环境变量都适用。要解决此问题,我们需要通过设置环境变量告诉客户端使用正确的 Docker API 版本:

DOCKER_API_VERSION=1.24 ./cm selenoid start --vnc

更新: 从 CM 版本 1.4.0 开始,这是自动确定的。