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()
docker-api的更多相关文章
- Docker入门教程(七)Docker API
Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...
- 【漏洞挖掘】攻击对外开放的Docker API接口
https://medium.com/@riccardo.ancarani94/attacking-docker-exposed-api-3e01ffc3c124 1)场景 攻击开放在互联网的Dock ...
- python调用docker API(CentOS6.5)
一 环境背景 python-2.7.8 docker 版本 1.15 (*yum安装为1.14版本,需升级为1.15,详见后续步骤) 二 获取Docker容器指标[指标可行性分析见笔记:] CPU : ...
- docker API 配置与使用
在网上看到一大堆乱乱七八招的博客,很多都不能用,我根据这些天踩的坑来总结一下吧 首先!怎么配置 docker API 两种方法 在/etc/sysconfig/docker文件里加一行OPTIONS= ...
- Docker for mac开启docker api调用
docker-java 支持unix socket调用的 DefaultDockerClientConfig config = DefaultDockerClientConfig.createDefa ...
- Java 使用 UnixSocket 调用 Docker API
在 Docker 官网查阅 API 调用方式 例如:查询正在运行的容器列表,HTTP 方式如下: $ curl --unix-socket /var/run/docker.sock http:/v1. ...
- python docker api
开启Remote API docker默认是没有开启Remote API的,需要我们手动开启.编辑/lib/systemd/system/docker.service文件, 在文件里的ExecStar ...
- Docker Api 实测
好久没写博客,工作中想着未来部门需要对docker进行维护相对麻烦,而且,网络上也缺少一些合适的项目,于是准备筹划自己动手.先找到了Docker 的API文档,地址是:https://docs.doc ...
- 使用docker api
前提: 系统centos 7 docker version 1.10.3 使用systemd启动docker 访问方式: 修改/usr/lib/systemd/system/docker.servic ...
- Docker入门教程(八)Docker Remote API
Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...
随机推荐
- Pycharm 2018.2.1-2018.1
请支持正版,谢谢! 下载激活包 激活包地址 解压后会得到两个包: JetbrainsCrack-2.10-release-enc.jar JetbrainsCrack-3.1-release-enc. ...
- ASP.NET MVC - 启动创建项目,未能加载错误
VS2012以常规方式创建一ASP.NET MVC internet 项目.创建后F5启动项目,遇一错误: 未能加载文件或程序集“MySql.Web.v20, Version=6.9.4.0, Cul ...
- 哈夫曼(Huffman)树+哈夫曼编码
前天acm实验课,老师教了几种排序,抓的一套题上有一个哈夫曼树的题,正好之前离散数学也讲过哈夫曼树,这里我就结合课本,整理一篇关于哈夫曼树的博客. 主要摘自https://www.cnblogs.co ...
- LCA最近公共祖先(Tarjan离线算法)
这篇博客对Tarjan算法的原理和过程模拟的很详细. 转载大佬的博客https://www.cnblogs.com/JVxie/p/4854719.html 第二次更新,之前转载的博客虽然胜在详细,但 ...
- 【探路者】团队互评Alpha版本
[探路者]组互评连接: 1互评作品:SkyHunter http://www.cnblogs.com/zej87/p/7802000.html 2互评作品:爱阅app http://www.cnblo ...
- 【Alpha】阶段第三次Scrum Meeting
[Alpha]阶段第三次Scrum Meeting 工作情况 团队成员 今日已完成任务 明日待完成任务 刘峻辰 更新评论接口 获取课程评论接口 赵智源 编写脚本实现持续集成 整合前端进行部署 肖萌威 ...
- windows环境下nginx服务器的安装与配置
转载至:http://www.cnblogs.com/hxxy2003/archive/2012/09/20/2695254.html nginx服务器是一个高性能的HTTP和反向代理服务器,它以稳定 ...
- Codeforces Round #287 (Div. 2) E. Breaking Good 最短路
题目链接: http://codeforces.com/problemset/problem/507/E E. Breaking Good time limit per test2 secondsme ...
- bond下改变网卡
浪潮服务器打开控制台 用ip addr查看哪个网卡是绑定的,eth2和eth4是绑定状态 用mv命令,更改网卡名称 并将每个网卡里的信息更改 reboot,重启 ip addr查看,eth6和eth8 ...
- js获取窗口滚动条高度、窗口可视范围高度、文档实际内容高度、滚动条离浏览器底部的高度
1.获取窗口可视范围的高度 //获取窗口可视范围的高度 function getClientHeight(){ var clientHeight=0; if(document.body.clientH ...