快速解决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的IDEL增加清屏功能实例
Jun 19 Python
tensorflow实现简单的卷积网络
May 24 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
python代码过长的换行方法
Jul 19 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
python实现静态服务器
Sep 05 Python
python中bytes和str类型的区别
Oct 21 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
python实现学生管理系统开发
Jul 24 Python
pytorch实现ResNet结构的实例代码
May 17 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 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
COM in PHP (winows only)
2006/10/09 PHP
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP重定向的3种方式
2013/03/07 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
在win7中搭建Linux+PHP 开发环境
2014/10/08 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
php文件上传类完整实例
2016/05/14 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
php跨域调用json的例子
2013/11/13 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
什么是会话Bean
2015/05/14 面试题
机械电子工程专业推荐信范文
2013/11/20 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
幼师自我鉴定
2014/02/01 职场文书
法律进企业活动方案
2014/03/04 职场文书
物业保安辞职信
2015/05/12 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
在js中修改html body的样式
2021/11/11 Javascript