docker版本显示客户端和服务器的正确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)")
>>>
答案 0 :(得分:0)
从错误中看,它看起来像是docker api客户端和docker服务器中的版本不匹配。您是否尝试升级docker服务器?
答案 1 :(得分:0)
它说你的docker python包的API与docker引擎服务器API不匹配。您应该安装与1.24兼容的docker python包或将docker engine API更新为1.30。
此外,您可以尝试为docker客户端分配新值,如下所示:
client = docker.DockerClient(base_url =&#39; unix://var/run/docker.sock' ;, version =&#34; 1.24&#34;)
OR
client = docker.APIClient(base_url =&#39; unix://var/run/docker.sock' ;, version =&#34; 1.24&#34;)