快速解决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中为feedparser设置超时时间避免堵塞
Sep 28 Python
Python根据区号生成手机号码的方法
Jul 08 Python
python生成圆形图片的方法
Mar 25 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
python3调用windows dos命令的例子
Aug 14 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python中编写函数并调用的知识点总结
Jan 13 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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知道与问问的采集插件代码
2010/10/12 PHP
解析thinkphp中的导入文件标签
2013/06/20 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
2017/03/08 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
简单JS代码压缩器
2006/10/12 Javascript
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
微信小程序  action-sheet详解及实例代码
2016/11/09 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
python3.x上post发送json数据
2018/03/04 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
浅谈Python中的模块
2020/06/10 Python
Keras loss函数剖析
2020/07/06 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
红领巾心向党广播稿
2014/01/19 职场文书
洗车工岗位职责
2014/03/15 职场文书
投资入股合作协议书
2014/10/28 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
教师读书笔记
2015/06/29 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
反邪教学习心得体会
2016/01/15 职场文书