docker-py 用Python调用Docker接口的方法


Posted in Python onAugust 30, 2019

官方文档:【https://docker-py.readthedocs.io/en/stable/images.html】

众所周知,Docker向外界提供了一个API来管理其中的资源。这个API可以是socket文件形式的(一般也是默认的,在/var/run/docker.sock中),也可以是TCP形式的。以前想要通过编程的方法来调用这些API还是傻傻的用subprocess等和系统层面交互的模块来调用,而docker-py这个模块则是直接把DockerAPI的调用封装了进去,让我们可以更加贴合Docker地进行API调用。

安装还是用pip:

pip install docker-py,意外的,这个模块所需要的依赖特别多,等了比我预想更长的时间,装好了。在python中import docker,不报错就是装好了。

■简单使用

网上的部分教程和使用方法说明可能是因为版本不切合的原因,不奏效。从中筛选了一些奏效的代码。首先是一个最简单的应用,就是实例化出一个dockerapi调用者的实例:

import docker
 
client = docker.Client(base_url='unix:///var/run/docker.sock')
 
for component,version in client.version().iteritems():

print component,version

初始化实例的过程中用到了参数base_url,它可以指出一个socket文件或者响应的dockerTCP连接如tcp://127.0.0.1:2375这样子。除此之外,还有version参数可以指出docker的版本,timeout参数指出连接超时的时间,tls参数可以置True或False来指出当前连接是否需要用到SSL证书,另外也可以传递一个docker.tls.TLSConfig类的实例来实现指定的TLS配置。

得到的客户端实例client可以调用一些方法。比如version方法是将当前docker以及其所依赖的环境中各个组件的版本信息以一个字典的方式展现出来。上述在虚拟机中输出如下:

KernelVersion 3.10.0-693.5.2.el7.x86_64
PkgVersion docker-1.12.6-71.git3e8e77d.el7.centos.1.x86_64
Os linux
BuildTime 2018-01-30T09:17:00.069703428+00:00
ApiVersion 1.24
Version 1.12.6
GitCommit 3e8e77d/1.12.6
Arch amd64
GoVersion go1.8.3

其他的读取当前docker环境中的一些方法如:

client.images([name])获取镜像信息,name可以是一个镜像的name,name的一部分,name:tag等多种形式,获取到完整的镜像信息。不指定name时返回所有镜像信息

client.containers([name])获取容器信息,name可以是容器的name, id等等,返回

client.info()docker info命令的那些输出

client.start/stop(name)相当于docker start和stop制定容器

...

上述几个方法的输出都是标准的JSON格式,可以很方便地被嵌入到其他的一些系统中

client.login()可以传入实名参数username, password, registry等,相当于docker login 

这里还有很多方法可以说,正巧这回想正式用下ipython这个神器。yum install ipython之后(还挺大的。。),键入ipython就进入ipython的shell了。在实例化玩client之后,输入client.然后按tab键要求补全的话,就会显示出所有client实例可以调用的方法和属性。

对于一个方法比如client.delete,后面输入问号再按回车,就可以看到这个方法相关的一些说明和用法。比去网上查,看官方文档不知道高到哪里去了。

列个所有方法的表,偷懒不详写了。

docker-py 用Python调用Docker接口的方法

以上这篇docker-py 用Python调用Docker接口的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单使用Python自动生成文章
Dec 25 Python
python类继承用法实例分析
May 27 Python
Django 实现购物车功能的示例代码
Oct 08 Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 Python
Django分页功能的实现代码详解
Jul 29 Python
python中元组的用法整理
Jun 15 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
python GUI计算器的实现
Oct 09 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 Python
Python 发送SMTP邮件的简单教程
Jun 24 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 #Python
Django获取应用下的所有models的例子
Aug 30 #Python
Django自带日志 settings.py文件配置方法
Aug 30 #Python
tensorflow如何批量读取图片
Aug 29 #Python
解决Django layui {{}}冲突的问题
Aug 29 #Python
Python Django实现layui风格+django分页功能的例子
Aug 29 #Python
在Django下测试与调试REST API的方法详解
Aug 29 #Python
You might like
单位速度在实战中的运用
2020/03/04 星际争霸
PHP中file_get_contents高?用法实例
2014/09/24 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
js 操作css实现代码
2009/06/11 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
深入浅析Python字符编码
2015/11/12 Python
Python 的内置字符串方法小结
2016/03/15 Python
用python爬取租房网站信息的代码
2018/12/14 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
python中如何设置代码自动提示
2020/07/15 Python
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
军训学生自我鉴定
2014/02/12 职场文书
公司年终奖分配方案
2014/06/16 职场文书
学雷锋宣传标语
2014/06/25 职场文书
出国留学英文自荐信
2015/03/25 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python