快速解決docker-py api版本不兼容的問題
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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python機器學(xué)習(xí)MATLAB最小二乘法的兩種解讀
這篇文章主要為大家介紹了python機器學(xué)習(xí)中MATLAB最小二乘法的兩種解讀方式,有需要的朋友可以借鑒參考下希望能夠有所幫助2022-02-02
Python函數(shù)參數(shù)基礎(chǔ)介紹及示例
在聲明函數(shù)的時候,一般會根據(jù)函數(shù)所要實現(xiàn)的功能來決定函數(shù)是否需要參數(shù)。在多數(shù)情況下,我們聲明的函數(shù)都會使用到參數(shù),這篇文章主要介紹了Python函數(shù)參數(shù)2022-08-08
Python編程使用matplotlib挑鉆石seaborn畫圖入門教程
這篇文章主要為大家介紹了Python編程中使用matplotlib繪圖包來挑出完美的鉆石,本篇是seaborn包畫圖使用入門篇,有需要的朋友可以借鑒參考下2021-10-10
Python將阿拉伯數(shù)字轉(zhuǎn)換為羅馬數(shù)字的方法
這篇文章主要介紹了Python將阿拉伯數(shù)字轉(zhuǎn)換為羅馬數(shù)字的方法,涉及Python字符串轉(zhuǎn)換及流程控制的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式
這篇文章主要介紹了Python如何在main中調(diào)用函數(shù)內(nèi)的函數(shù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法
今天小編就為大家分享一篇pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python RuntimeWarning:invalid value encounter
這篇文章主要介紹了Python RuntimeWarning:invalid value encountered in double_scalars處理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Python全面解析json數(shù)據(jù)并保存為csv文件
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

