docker-api

__author__ = ‘zxp‘
import docker
import sys
class DockerManager_Slave(object):
    def __init__(self):
        self.idict={}
        self.rinfo={}
        try:
            self.c = docker.Client(base_url=‘unix://var/run/docker.sock‘,version=‘1.0.1‘,timeout=15)
        except Exception,e:
            print "Connection docker server error:"+str(e)
            sys.exit()
    def Create_Container(self,image,command=None,mem_limit=0,ports=None,name=None,cpu_shares=None):
        """
        :param image (str): The image to run
        :param command (str or list): The command to be run in the container
        :param mem_limit (float or str): Memory limit (format: [number][optional unit], where unit = b, k, m, or g)
        :param ports (list of ints): A list of port numbers
        :param name (str): A name for the container
        :param cpu_shares (int or float): CPU shares (relative weight)
        Returns (dict): A dictionary with an image ‘Id‘ key and a ‘Warnings‘ key.
        return container id
        """
        try:
            self.container = self.c.create_container(image=image, command=command,mem_limit=mem_limit,ports=ports,                                                 name=name,cpu_shares=cpu_shares)
        except Exception,e:
            print "Create Container error:"+str(e)
            sys.exit()
        return self.container[‘Id‘]
    def Inspect_Container(self,containerid):
        """
        :param containerid:The container to inspect
        :return:Nearly the same output as docker inspect, just as a single dict
        """
        try:
            self.container_info=self.c.inspect_container(containerid)
        except Exception,e:
            print "Inspect Container"+containerid+"error:"+str(e)
            sys.exit()
    def Pull(self,repository,tag=None):
        """
        :param repository (str): The repository to pull
        :param tag (str): The tag to pull
        :return (generator or str): The output
        """
        try:
            self.pull_detail=self.c.pull(repository,tag)
        except Exception,e:
            print "Pull images"+repository+":"+tag+"error:"+str(e)
            sys.exit()
    def Start(self,containerid):
        try:
            self.c.start(containerid)
        except Exception,e:
            print "Start Container"+containerid+"error:"+str(e)
    def Stop(self,containerid,timeout=10):
        """
        :param container (str): The container to stop
        :param timeout (int): Timeout in seconds to wait for the container to stop before sending a SIGKILL
        :return:
        """
        try:
            self.c.stop(containerid,timeout=timeout)
        except Exception,e:
            print "Stop"+containerid+"error:"+str(e)
            sys.exit()
    def Remove_Container(self,containerid):
        """
        container (str): The container to remove
        v (bool): Remove the volumes associated with the container
        link (bool): Remove the specified link and not the underlying container
        force (bool): Force the removal of a running container (uses SIGKILL)
        """
        try:
            self.c.remove_container(containerid)
        except Exception,e:
            print "Remove container"+containerid+"error:"+str(e)
            sys.exit()
时间: 2024-10-14 09:19:19

docker-api的相关文章

Docker入门教程(七)Docker API

Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub API. 纵观我们的Docker系列教程,我们已经讨论了很多重要的Docker组件与命令.在本文中,我们将继续深入学习Docker:剖析Docker APIs. Docker提供了很多的API以便用户使用.这些API包含四个方面: Docker Registry API Doc

Docker API简单使用

默认情况下,Docker daemon监听unix://var/run/docker.sock,并且客户端必须有root权限用来与daemon交互. 为了使用Docker REST API,可以先停止docker服务,然后在启动的时候加-H参数: service docker stop docker -d -H unix:///var/run/docker.sock -H 0.0.0.0:4243 为了使配置永久生效,在Ubuntu环境下修改其配置文件 /etc/default/docker,

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

【漏洞挖掘】攻击对外开放的Docker API接口

https://medium.com/@riccardo.ancarani94/attacking-docker-exposed-api-3e01ffc3c124 1)场景 攻击开放在互联网的Docker API 2)问题难点 Docker API外放有什么危害? 3)解决问题的方法 理解客户API公开互联网的原理 信息收集和枚举 利用Docker CLI测试暴露的API 批量挖掘 4)方法细节 理解客户API公开互联网的原理 <如何为dockerd启用远程API> 1./etc/system

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

Docker Api 实测

好久没写博客,工作中想着未来部门需要对docker进行维护相对麻烦,而且,网络上也缺少一些合适的项目,于是准备筹划自己动手.先找到了Docker 的API文档,地址是:https://docs.docker.com/engine/api/v1.26/ 上班的时候发现有API功能,可以直接获取json格式数据,那就不需要自己动手去运行实例并解析文本了. 接口可以使用http查询,也可以使用Unix进程协议查询.为了方便,我暂时使用的是unix进程协议进行查询. 既然用Unix进程协议的话,那就可以

python docker api

开启Remote API docker默认是没有开启Remote API的,需要我们手动开启.编辑/lib/systemd/system/docker.service文件, 在文件里的ExecStart参数后面添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 然后重启sudo systemctl daemon-reload     sudo service docker restart  在浏览器查看: 备注:我这里用了 JSONVie

使用python的docker-py实现docker的api操作

前沿: 听同事说,以后的dba申请可能有部分走其他部门的docker ,那边貌似在搞一个类似docker的平台管理系统,据说很霸道.于是乎,我自己也想尝试写一个简单的doker管理平台.  做为起步我先搞搞docker api,docker官网有个docker-py,用起来很是清爽简单. 首先安装docker的python相关的模块. [email protected]:~# pip install docker-py Requirement already satisfied (use --u

原创:Docker在云家政的应用 谢绝复制粘贴内容

我们公司目前大规模使用了Docker,目前除了数据库应用,其他所有应用都在Docker容器内运行,下面我就Docker在公司的应用做一些分享.. 首先我介绍一下公司的背景,公司属于中小型创业公司,服务器数量不多,但是为了解决一些问题,我们引入了现在比较火的Docker技术. 看一下我们在没用Docker之前遇到的问题: 1.线上环境和测试环境不完全一致,导致测试好的功能上线后会出现一些BUG. 2.部署新项目步骤繁琐,批量部署运行环境后,需要根据每个项目不同的情况,手动修改配置参数. 3.新项目

Docker源码解读:1.flag解读

我是怎么想到要先看docker中的flag呢,就是因为docker采用了c/s结构,而且daemon和client都是用同一个程序的,因此,为了做出区分,肯定是要用参数来区分的.先来看位于./docker/docker/docker.go下面的main函数代码: func main() { //第一次肯定是返回false的,因为没有任何initializer if reexec.Init() { return } // Set terminal emulation based on platfo