dockerAPI客户端/服务器版本不匹配?

泊坞窗版本显示正确的API版本的客户端和服务器时,我运行里面的python它是抛出错误如下。

# docker version Client: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-48.git0fdc778.el7.x86_64 Go version: go1.8.3 Git commit: 0fdc778/1.12.6 Built: Thu Jul 20 00:06:39 2017 OS/Arch: linux/amd64 Server: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-48.git0fdc778.el7.x86_64 Go version: go1.8.3 Git commit: 0fdc778/1.12.6 Built: Thu Jul 20 00:06:39 2017 OS/Arch: linux/amd64 # 

但是,当我用Python运行它是抛出错误,如下所示。

  # python Python 2.7.5 (default, Aug 29 2016, 10:12:21) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import docker >>> client = docker.APIClient(base_url='unix://var/run/docker.sock') >>> print client.version() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/site-packages/docker/api/daemon.py", line 177, in version return self._result(self._get(url), json=True) File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 226, in _result self._raise_for_status(response) File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 222, in _raise_for_status raise create_api_error_from_http_exception(e) File "/usr/lib/python2.7/site-packages/docker/errors.py", line 31, in create_api_error_from_http_exception raise cls(e, response=response, explanation=explanation) docker.errors.APIError: 400 Client Error: Bad Request ("client is newer than server (client API version: 1.30, server API version: 1.24)") >>> 

从错误,它看起来像在Docker API客户端和docker服务器版本不匹配。 你尝试升级docker服务器?

它说您的dockerpython包的API不匹配docker引擎服务器API。 你应该安装一个与1.24兼容的docker python软件包或者更新你的docker engine API到1.30。

另外,您可以尝试为Docker客户端分配新的值,如下所示:

client = docker.DockerClient(base_url ='unix://var/run/docker.sock',version =“1.24”)

要么

client = docker.APIClient(base_url ='unix://var/run/docker.sock',version =“1.24”)