h0945466 发表于 2015-4-18 06:59:51

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]
查看完整版本: python调用docker API(CentOS6.5)