快速解决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里disconnect UDP套接字的方法
Apr 23 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
使用tensorflow实现AlexNet
Nov 20 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
简单的Python调度器Schedule详解
Aug 30 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
Tensorflow tf.tile()的用法实例分析
May 22 Python
python3实现简单飞机大战
Nov 29 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实现Mysql简易操作类
2015/10/11 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
pandas 对group进行聚合的例子
2019/12/27 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
如何查找和删除数据库中的重复数据
2014/11/05 面试题
日语专业推荐信
2013/11/12 职场文书
主治医师岗位职责
2013/12/10 职场文书
法院授权委托书范文
2014/08/02 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
2014年商场工作总结
2014/11/22 职场文书
儿园租房协议书范本
2014/12/02 职场文书
结婚纪念日感言
2015/08/01 职场文书
大学班长竞选稿
2015/11/20 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
python基础之文件操作
2021/10/24 Python