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】
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.py build
- # python setup.py install
-
- ps:如遇到以下错误:
- 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
报错:
解决如下: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存储,而未删除]
- 最后重启docker:# service docker restart
-
docker version[成功升级为1.15] 如图:
ps:如不升级docker会遇到以下错误:
E 运行python脚本
# python testCpu.py
参考资料:
1 http://masato.github.io/2014/11/16/salt-docker-pulled-api-error/#more 【client server版本不同】
2 http://www.2cto.com/os/201309/246571.html 【linux salt安装】