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保存MongoDB上的文件到本地的方法
Mar 16 Python
简单谈谈python中的多进程
Nov 06 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
Python实现识别手写数字 Python图片读入与处理
Mar 23 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
Python设计模式之外观模式实例详解
Jan 17 Python
Python代码块及缓存机制原理详解
Dec 13 Python
使用python计算三角形的斜边例子
Apr 15 Python
利用Python批量识别电子账单数据的方法
Feb 08 Python
PyQt5爬取12306车票信息程序的实现
May 14 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
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
组合算法的PHP解答方法
2012/02/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
javascript replace方法与正则表达式
2008/02/19 Javascript
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
javascript history对象详解
2017/02/09 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[53:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第三场 6.2
2018/06/03 DOTA
Django中Forms的使用代码解析
2018/02/10 Python
Python聊天室程序(基础版)
2018/04/01 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
对Python 内建函数和保留字详解
2018/10/15 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
韩国邮政旗下生鲜食品网上超市:epost
2016/08/27 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书