docker-py:客户端和服务器没有相同的版本(客户端:1.16,服务器:1.15)“)

docker-py 0.7.0给了我一个Docker 1.3.2和docker-py 0.7.0的本地Docker安装的以下错误。 主机运行的是CentOS 6.6。 这怎么解决?

xxxx@dev1 myproject]$ bin/python d.py Traceback (most recent call last): File "d.py", line 3, in <module> c.create_container(image='zopyx/xmldirector-plone') File "/home/xxxx/sandboxes/myproject/lib/python2.7/site-packages/docker/client.py", line 546, in create_container return self.create_container_from_config(config, name) File "/home/xxxx/sandboxes/myproject/lib/python2.7/site-packages/docker/client.py", line 554, in create_container_from_config return self._result(res, True) File "/home/xxxx/sandboxes/myproject/lib/python2.7/site-packages/docker/client.py", line 98, in _result self._raise_for_status(response) File "/home/xxxx/sandboxes/myproject/lib/python2.7/site-packages/docker/client.py", line 94, in _raise_for_status raise errors.APIError(e, response, explanation=explanation) docker.errors.APIError: 404 Client Error: Not Found ("client and server don't have same version (client : 1.16, server: 1.15)") >>docker --version Docker version 1.3.2, build 39fa2fa/1.3.2 >>docker version Client version: 1.3.2 Client API version: 1.15 Go version (client): go1.3.3 Git commit (client): 39fa2fa/1.3.2 OS/Arch (client): linux/amd64 Server version: 1.3.2 Server API version: 1.15 Go version (server): go1.3.3 Git commit (server): 39fa2fa/1.3.2 

昨天也遇到同样的问题 强制安装docker-py = 0.6.0。 如果你已经安装了0.7.0,你需要清除你的点子caching,否则点子会从你的caching中安装0.7.0。

干杯,W

这不是一个bug docker-py正在尝试使用最新的可用docker api。 如果你有最新的docker,一切都可以,如果不是,你只需要将'version'传递给Client。

http://docker-py.readthedocs.org/en/latest/api/

解决scheme,如果客户端版本比服务器版本更新:

假设你想连接到你的docker服务,像这样:

 docker_client = Client(base_url='tcp://127.0.0.1:2376') # Alternatively: # docker_client = Client(base_url='unix://var/run/docker.sock') 

如果客户端版本比服务器版本更新,则会导致如下错误消息:

 docker.errors.NotFound: 404 Client Error: Not Found ("client and server don't have same version (client : 1.22, server: 1.18)") 

您可以通过设置docker.Client对象的version property (如@srednibuild议)来解决问题。 鉴于上面的错误,您需要将行更改为:

 docker_client = Client(base_url='tcp://127.0.0.1:2376', version='1.18') 
Interesting Posts