快速解决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 pickle模块用法实例分析
May 27 Python
Python自动生产表情包
Mar 17 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python实现多进程的四种方式
Feb 22 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
python打开文件的方式有哪些
Jun 29 Python
python基础之类方法和静态方法
Oct 24 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内存管理之谁动了我的内存
2013/06/20 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
Python实例之wxpython中Frame使用方法
2014/06/09 Python
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python3人脸识别的两种方法
2019/04/25 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
Python读写压缩文件的方法
2020/07/30 Python
eBay美国官网:eBay.com
2020/10/24 全球购物
财务管理个人自荐书范文
2013/11/24 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
老同学聚会感言
2014/02/23 职场文书
简历里的自我评价范文
2014/02/24 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
处级干部考察材料
2014/12/24 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
不要在HTML中滥用div
2021/05/08 HTML / CSS
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
Python实现智慧校园自动评教全新版
2021/06/18 Python
部分武汉产收音机展览
2022/04/07 无线电