快速解决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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
Python使用爬虫猜密码
Feb 19 Python
python实现解数独程序代码
Apr 12 Python
python实现BackPropagation算法
Dec 14 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
Django ModelForm操作及验证方式
Mar 30 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 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判断是否微信访问的方法示例
2019/03/27 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
Python API len函数操作过程解析
2020/03/05 Python
Python中如何添加自定义模块
2020/06/09 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
Java面试题及答案
2012/09/08 面试题
网络安全方面的面试题
2015/11/04 面试题
外贸业务员的岗位职责
2013/11/23 职场文书
男女朋友协议书
2014/04/23 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
毕业设计工作总结
2015/08/14 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
Python开发五子棋小游戏
2022/05/02 Python