快速解决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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
python的三目运算符和not in运算符使用示例
Mar 03 Python
使用 Python 获取 Linux 系统信息的代码
Jul 13 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
Python中使用支持向量机(SVM)算法
Dec 26 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
详细介绍pandas的DataFrame的append方法使用
Jul 31 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
Python requests用法和django后台处理详解
Mar 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
python静态方法实例
2015/01/14 Python
pycham查看程序执行的时间方法
2018/11/29 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python排序函数的使用方法详解
2020/12/11 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
AOP的定义以及作用
2013/09/08 面试题
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
行政部总经理岗位职责
2014/01/04 职场文书
新员工欢迎词
2014/01/12 职场文书
致200米运动员广播稿
2014/02/06 职场文书
一年级学生评语大全
2014/04/21 职场文书
公司晚会策划方案
2014/05/17 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
放假通知怎么写
2015/08/18 职场文书