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       

  • yum install zlib
  • yum install zlib-devel
  • 安 装完成后,重新编译 python2.7【不需要删除,只需要重新编译,make,安装就行了】 # cd /usr/local/Python-2.7.8   # make clean  # make  # make install

      B 安装pip

     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

参考资料:

http://docs.docker.com/reference/api/docker-io_api/ 【官网资料】

http://masato.github.io/2014/11/16/salt-docker-pulled-api-error/#more 【client server版本不同】

http://www.2cto.com/os/201309/246571.html 【linux salt安装】

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/

https://code.csdn.net/u010702509/docker_upgrading  http://blog.csdn.net/limingjian/article/details/40298217 【更新docker】

时间: 2024-09-27 23:59:03

python调用docker API(CentOS6.5)的相关文章

Python调用微博API

上头叫通过微博ID获取用户发布过的历史微博内容,于是研究了下新浪微博提供的API 1 首先在微博开放中心下"创建应用"创建一个应用,应用信息那些随便填,填写完毕后,不需要提交审核,需要的只是那个app-key和app-secret 2 在"微博开放平台"的"管理中心"找到刚才创建的应用,点开这个应用,点开左边"应用信息"栏,会看见"App key"和"App Secret"的字样,这两个

使用Python调用Flickr API抓取图片数据

Flickr是雅虎旗下的图片分享网站,上面有全世界网友分享的大量精彩图片,被认为是专业的图片网站.其API也很友好,可以实现多种功能.这里我使用了Python调用其API获得了大量的照片数据. 首先需要先去Flickr注册成为其开发者,创建应用,获得API_KEY和API_SECRET,其API网址在:https://www.flickr.com/services/api/ Flickr提供了多种开发工具进行使用.这里我们使用Python开发工具.官方推荐的开发工具是Beej’s Python

Java 使用 UnixSocket 调用 Docker API

在 Docker 官网查阅 API 调用方式 例如:查询正在运行的容器列表,HTTP 方式如下: $ curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json [{ "Id":"ae63e8b89a26f01f6b4b2c9a7817c31a1b6196acf560f66586fbc8809ffcd772", "Names":["/tender_wing&qu

python 调用zabbix api实现查询主机信息,输出所有主机ip

之前发现搜索出来的主机调用zabbix api信息都不是那么明确,后来通过zabbix官方文档,查到想要的api信息,随后写一篇自己这次项目中用到的api. #!/usr/bin/env python #coding:utf8 import requests import json headers = {'Content-Type': 'application/json-rpc'} server_ip = '10.37.149.109' url = 'http://%s/zabbix/api_j

python调用zabbix api接口实时展示数据

近日公司准备自已做一个运维管理平台,其中的监控部分,打算调用zabbix api接口来进行展示. 经过思考之后,计划获取如下内容: 1.  获得认证密钥 2.  获取zabbix所有的主机组 3.  获取单个组下的所有主机 4.  获取某个主机下的所有监控项 5.  获取某个监控项的历史数据 6.  获取某个监控项的最新数据 计划最后展示框架如下内容(这只是值方面,其它的会再加): 主机组1 ----主机名1---监控项1----当前值 ---监控项2----当前值 ----主机名2----监控

(二)Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌

访问zabbix api的URL是: http://x.x.x.x/zabbix/api_jsonrpc.php x.x.x.x可能是你的IP或者域名 访问流程概览: 1.首先登录 2.认证成功后zabbix server返回一个token 3.带着这个token去访问各种数据,做各种操作 4.完毕! 一.用RESTClient进行登录 在json请求的正文中,具有以下属性: jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现JSON-RPC版本2.0; me

Python调用ansible API系列(四)动态生成hosts文件

方法一:通过最原始的操作文件的方式 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 通过操作文件形式动态生成ansible的hosts文件 """ import sys class Inventory: def __init__(self): # ansible的hosts文件路径 self._hostsfile = "./aaa" self._data = self._ge

Python调用Windows API函数编写录音机和音乐播放器

功能描述: 1)使用tkinter设计程序界面: 2)调用Windows API函数实现录音机和音乐播放器. . 参考代码: ? 运行界面: ? 原文地址:https://www.cnblogs.com/7758520lzy/p/12149931.html

Python 调用 Ansible API 简例

如下是ad-hoc模式下的调用方式:ansible [模块] [选项] [主机资产] #!/usr/bin/env python import json import shutil from collections import namedtuple from ansible.parsing.dataloader import DataLoader from ansible.vars.manager import VariableManager from ansible.inventory.ma