python调用docker API(CentOS6.5)
一 环境背景[*]python-2.7.8
[*]docker 版本 1.15 (*yum安装为1.14版本,需升级为1.15,详见后续步骤)
二 获取Docker容器指标【指标可行性分析见笔记:】
[*]CPU :usr 和 system Cpu time
[*]Memory
[*]IP
三 整体步骤
[*]容器指标值获取
[*]Docker Python API 环境搭建
[*]获取指标可行性分析
四具体实现
1 以下python脚本为获取指定容器ID的ip,cpu,及memory 【*框图部分需引入python docker API】
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/c2759f11-bd43-45ed-9474-d4e2591b7af8.png?resizeSmall&width=1304
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/3fd56d94-f216-4b0d-a01e-6fed7c23fbf2.png?resizeSmall&width=1304
2 :python docke api 安装
未安装api时,运行python,会报错:no model named docker
安装步骤如下:
A: 下载setuptools
[*]# wget https://pypi.python.org/packages/source/s/setuptools/setuptools-3.3.tar.gz
[*]# python setup.pybuild
[*]# python setup.py install
[*]
[*]ps:如遇到以下错误:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/d6d8c92a-0a70-48c7-af57-adb93b413a92.png?resizeSmall&width=1304
[*] yum install zlib
[*] yum install zlib-devel
[*] 安 装完成后,重新编译 python2.7【不需要删除,只需要重新编译,make,安装就行了】 # cd /usr/local/Python-2.7.8 # make clean# make# make install
B 安装pip
[*]# wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
[*]#tar zvxf 1.5.5.tar.gz
[*] #cd pip-1.5.5/
[*] #python setup.py install【*from setuptools import setup ,ImportError: No module named setuptools,解决如A】
C 安装docker-py
[*]
#pip install docker-py
报错:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/3dc647b2-8b79-4102-bbcc-7616bd29e481.png?resizeSmall&width=1304
解决如下:yum安装openssl和openssl-devel。然后重新编译python。
# yum install openssl
# yum install-devel
D升级Docker版本(1.14)至1.15
[*]杀死docker正在运行的进程 #killall docker
[*]#获取最新更新的 docker版本 #wget http://get.docker.io/builds/Linux/x86_64/docker-latest -O docker 或者:wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O docker
[*]
给docker执行权限 chmod +x docker
[*]使用-d模式开启和断开docker进程,后台运行进程使用参数(&).保证你使用./docker的版本是最新版本的路径而不是上一个版本的路径 # 执行新的版本 #./docker -d &
或者你可以替换在/usr/local/bin的下的docker[为了保险起见将原有的docker更名为dockertemp存储,而未删除]
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/0993b750-4564-4fbf-bced-0706cdcb2323.png?resizeSmall&width=1304
[*]最后重启docker:# service docker restart
[*]
docker version[成功升级为1.15] 如图:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/8d741340-a48f-4903-9179-32c5575b0b87.png?resizeSmall&width=1304
ps:如不升级docker会遇到以下错误:
http://onexin.iyunv.com/source/plugin/onexin_bigdata/https://app.yinxiang.com/shard/s41/res/a6bf405a-f2a7-41f6-a117-23181dac6bed/Image.png?resizeSmall&width=1304
E 运行python脚本
# python testCpu.py
参考资料:
0 http://docs.docker.com/reference/api/docker-io_api/ 【官网资料】
1 http://masato.github.io/2014/11/16/salt-docker-pulled-api-error/#more 【client server版本不同】
2 http://www.iyunv.com/os/201309/246571.html 【linux salt安装】
3 http://xiaorui.cc/2014/08/13/%E5%88%A9%E7%94%A8python%E7%9A%84docker-py%E8%BF%9B%E8%A1%8Cdocker%E7%9A%84api%E6%93%8D%E4%BD%9C/
4 https://code.iyunv.com/u010702509/docker_upgradinghttp://blog.iyunv.com/limingjian/article/details/40298217 【更新docker】
页:
[1]