快速解决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数据结构之二叉树的遍历实例
Apr 29 Python
Python 冒泡,选择,插入排序使用实例
Feb 05 Python
Pyhton中防止SQL注入的方法
Feb 05 Python
python实现查找两个字符串中相同字符并输出的方法
Jul 11 Python
python通过加号运算符操作列表的方法
Jul 28 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
django之自定义软删除Model的方法
Aug 14 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
python3.x中安装web.py步骤方法
Jun 23 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
用ldap作为django后端用户登录验证的实现
Dec 07 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 删除记录实现代码
2009/03/12 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python逐行读取文件内容的三种方法
2014/01/20 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python图像和办公文档处理总结
2019/05/28 Python
Python求离散序列导数的示例
2019/07/10 Python
python银行系统实现源码
2019/10/25 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
美国网上花店:JustFlowers
2017/02/12 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
男方父母婚礼答谢词
2014/01/25 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
组工干部演讲稿
2014/09/02 职场文书
贫困生证明范文
2015/06/16 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
Python+Appium实现自动抢微信红包
2021/05/21 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers