快速解决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中关于日期时间处理的问答集锦
Mar 08 Python
Python中列表(list)操作方法汇总
Aug 18 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
tensorflow如何批量读取图片
Aug 29 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
Python requests库参数提交的注意事项总结
Mar 29 Python
python 闭包函数详细介绍
Apr 19 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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
解决Vue动态加载本地图片问题
2019/10/09 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
[03:08]TI9战队档案 - Vici Gaming
2019/08/20 DOTA
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Python实现学校管理系统
2018/01/11 Python
WxPython建立批量录入框窗口
2019/02/27 Python
python 函数中的参数类型
2020/02/11 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
应届生煤化工求职信
2013/10/21 职场文书
学雷锋宣传标语
2014/06/25 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
商业门面租房协议书
2014/11/25 职场文书
公司员工培训管理制度
2015/08/04 职场文书
心理学培训心得体会
2016/01/22 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
Python装饰器详细介绍
2022/03/25 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS