【问题标题】:docker-py: client and server don't have same version (client : 1.16, server: 1.15)")docker-py:客户端和服务器的版本不同(客户端:1.16,服务器:1.15)“)
【发布时间】:2015-02-28 03:33:35
【问题描述】:

docker-py 0.7.0 针对本地 Docker 安装的 Docker 1.3.2 给出以下错误 和 docker-py 0.7.0。主机运行 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

【问题讨论】:

    标签: python centos docker


    【解决方案1】:

    昨天遇到了同样的问题。强制安装 docker-py=0.6.0。如果您已经安装了 0.7.0,则需要清除您的 pip 缓存,否则 pip 会从您的缓存中安装 0.7.0。

    干杯, W

    【讨论】:

      【解决方案2】:

      这不是 docker-py 尝试使用最新可用的 docker api 的错误。如果你有最新的 docker,一切都很好,如果没有,你只需将“版本”传递给客户端。

      https://github.com/docker/docker-py/blob/0.7.0/docs/api.md

      【讨论】:

        【解决方案3】:

        客户端版本比服务器版本新的解决方法:

        假设你想像这样连接到你的 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 来解决问题(如@sredni 建议的那样)。鉴于上述错误,您需要将行更改为:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-21
          • 1970-01-01
          • 2014-05-25
          • 1970-01-01
          相关资源
          最近更新 更多