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深入学习之特殊方法与多范式
Aug 31 Python
Python中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 Python
Python迭代器和生成器介绍
Mar 06 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
你应该知道的python列表去重方法
Jan 17 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python3 合并二叉树的实现
Sep 30 Python
浅析matlab中imadjust函数
Feb 27 Python
Python中如何添加自定义模块
Jun 09 Python
python 命令行传参方法总结
May 25 Python
Python爬虫实战之爬取携程评论
Jun 02 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
python logging类库使用例子
2014/11/22 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
会计专业大学生职业生涯规划书
2014/02/11 职场文书
党员志愿者活动方案
2014/08/28 职场文书
测量员岗位职责
2015/02/14 职场文书
离婚案件被告代理词
2015/05/23 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书