快速解决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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
Python中的pack和unpack的使用
Mar 12 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
Django rest framework工具包简单用法示例
Jul 20 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
python3.x实现base64加密和解密
Mar 28 Python
python装饰器使用实例详解
Dec 14 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Python制作表白爱心合集
Jan 22 Python
python数字图像处理:图像的绘制
Jun 28 Python
Python中的 No Module named ***问题及解决
Jul 23 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
实用函数10
2007/11/08 PHP
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
php 修改密码实现代码
2017/05/24 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
pycharm远程调试openstack的图文教程
2017/11/21 Python
django2 快速安装指南分享
2018/01/05 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
什么是反射
2012/03/17 面试题
火灾现场处置方案
2014/05/28 职场文书
企业培训简报范文
2015/07/20 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript