2017-10-04 3 views
0

도커 버전은 클라이언트와 서버 모두에 올바른 api 버전을 표시합니다. 파이썬 안에서 실행하면 아래와 같은 오류가 발생합니다.도커 API 클라이언트/서버 버전 불일치?

# 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 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

, 그것은 고정 표시기 API 클라이언트와 고정 표시기의 서버 버전의 불일치처럼 보인다. 도커 서버를 업그레이드하려고 했습니까?

+0

"1.24"), 대신에 의견을 주시기 바랍니다 – GGO

0

도커 파이썬 패키지의 API가 도커 엔진 서버 API와 일치하지 않는다고합니다. 1.24와 호환되는 도커 Python 패키지를 설치하거나 도커 엔진 API를 1.30으로 업데이트해야합니다. 다음과 같이

또한, 당신이 당신의 고정 표시기 클라이언트에 새 값을 할당 시도 할 수 있습니다 :

클라이언트 = docker.DockerClient (BASE_URL = '유닉스 : //var/run/docker.sock', 버전 = "1.24")

또는

클라이언트는 =를 docker.APIClient은 (BASE_URL = '유닉스 : //var/run/docker.sock', 버전 =이 답변을 제공하지