2015-01-01 3 views
5

docker-py 0.7.0 gibt mir den folgenden Fehler gegen eine lokale Docker-Installation von Docker 1.3.2 und docker-py 0.7.0. Das ist Host läuft CentOS 6.6. Wie kann dieses Problem behoben werden?docker-py: Client und Server haben nicht dieselbe Version (Client: 1.16, Server: 1.15) ")

[email protected] 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 

Antwort

2

das gleiche Problem gestern bekam. Installation erzwingen docker-py = 0.6.0. Wenn Sie bereits 0.7.0 haben installiert haben, müssen Sie Ihren Pip Cache löschen, sonst pip 0.7.0 aus dem Cache installieren.

Cheers, W

1

Lösung, wenn die Client-Version neuer als die Server-Version ist:

Sagen Sie so zu Ihrem Docker Service verbinden wollen:

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

Wenn die Client-Version ist neuer als die Serverversion, führt dies zu einer Fehlermeldung wie dieser:

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

Sie können das Problem lösen, indem Sie version property des Objekts docker.Client (wie von @sredni vorgeschlagen) einstellen. Bei dem oben genannten Fehler müssen Sie die Zeile folgendermaßen ändern:

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