快速解决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多线程抓取天涯帖子内容示例
Apr 03 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
python中实现k-means聚类算法详解
Nov 11 Python
Python之web模板应用
Dec 26 Python
python中的print()输出
Apr 12 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
python设置随机种子实例讲解
Sep 12 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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 socket方式提交的post详解
2008/07/19 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
php目录拷贝实现方法
2015/07/10 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
读jQuery之十 事件模块概述
2011/06/27 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
python re模块和正则表达式
2021/03/24 Python
计算机科学与技术专业求职信
2014/09/03 职场文书
人事聘任通知
2015/04/21 职场文书
mysql部分操作
2021/04/05 MySQL
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏