快速解决docker-py api版本不兼容的问题


Posted in Python onAugust 30, 2019

docker提供了Python、Go等编程语言的api。最近打算用docker SDK for Python(以下简称docker-py)做点东西,本来以为按照官网上的步骤安装很简单,pip install docker 就行,然而出现了版本不兼容的问题。

报错如下:

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官网 里找一找解决方法,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

有一个参数可以指定version,于是这样写:client=docker.from_env(version='1.19') 似乎就能避免版本不兼容的问题了。然而还是报错:

ValueError: zero length field name in format

搜了一下这是因为我的python版本是2.6,在对参数解析时出现格式问题,没办法,只好升级python2.7了。

在官网的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系统,不要忘了修改/usr/bin/yum ,将第一行#!/usr/bin/python 改为#!/usr/bin/python2.6 ,否则yum指令无法使用。

以上这篇快速解决docker-py api版本不兼容的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中运算符"=="和"is"的详解
Oct 08 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
彻底理解Python list切片原理
Oct 27 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
Django 路由系统URLconf的使用
Oct 11 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
python如何从文件读取数据及解析
Sep 19 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 #Python
python pillow模块使用方法详解
Aug 30 #Python
docker-py 用Python调用Docker接口的方法
Aug 30 #Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 #Python
Django获取应用下的所有models的例子
Aug 30 #Python
Django自带日志 settings.py文件配置方法
Aug 30 #Python
tensorflow如何批量读取图片
Aug 29 #Python
You might like
php sybase_fetch_array使用方法
2014/04/15 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
js捕获鼠标滚轮事件代码
2013/12/16 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
python实现梯度下降算法
2020/03/24 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Python用户自定义异常的实现
2020/12/25 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
毕业生护理专业个人求职信范文
2014/01/04 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
冰雪公主观后感
2015/06/16 职场文书
会议主持词结束语
2015/07/03 职场文书
PHP中->和=>的意思
2021/03/31 PHP