溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

快速解決docker-py api版本不兼容的問題

發(fā)布時間:2020-09-25 19:00:32 來源:腳本之家 閱讀:217 作者:fiverwyp 欄目:開發(fā)技術(shù)

docker提供了Python、Go等編程語言的api。最近打算用docker SDK for Python(以下簡稱docker-py)做點東西,本來以為按照官網(wǎng)上的步驟安裝很簡單,pip install docker 就行,然而出現(xiàn)了版本不兼容的問題。

報錯如下:

docker.errors.APIError: 400 Client Error: Bad Request ("client is newer than server (client API version: 1.30, server API version: 1.19)")

可以使用指令 docker version查看版本號,果然api版本是1.19,但是docker-py的版本是1.30。在docker-py官網(wǎng) 里找一找解決方法,from_env()的解釋如下:

 from_env()

 Return a client configured from environment variables.

 The environment variables used are the same as those used by the Docker command-line client. They are:

 DOCKER_HOST

  The URL to the Docker host.

 DOCKER_TLS_VERIFY

  Verify the host against a CA certificate.

 DOCKER_CERT_PATH

  A path to a directory containing TLS certificates to use when connecting to the Docker host.

 Parameters: 

  version (str) – The version of the API to use. Set to auto to automatically detect the server's version. Default: 1.26
  timeout (int) – Default timeout for API calls, in seconds.
  ssl_version (int) – A valid SSL version.
  assert_hostname (bool) – Verify the hostname of the server.
  environment (dict) – The environment to read environment variables from. Default: the value of os.environ

有一個參數(shù)可以指定version,于是這樣寫:client=docker.from_env(version='1.19') 似乎就能避免版本不兼容的問題了。然而還是報錯:

ValueError: zero length field name in format

搜了一下這是因為我的python版本是2.6,在對參數(shù)解析時出現(xiàn)格式問題,沒辦法,只好升級python2.7了。

在官網(wǎng)的change日志中可以看到,2.0版本之后就不再支持python2.6了。

2.0.0
...
Breaking changes
 Dropped support for Python 2.6

將python2.6升級到2.7,不僅要編譯安裝python2.7,還要把/usr/local/bin/pip2.7軟連接給/usr/bin/pip 以覆蓋原來的pip2.6,然后重新pip install docker

如果是centos系統(tǒng),不要忘了修改/usr/bin/yum ,將第一行#!/usr/bin/python 改為#!/usr/bin/python2.6 ,否則yum指令無法使用。

以上這篇快速解決docker-py api版本不兼容的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI