DockerCloud的Python库
python-dockercloud的Python项目详细描述
#python docker云
Docker Cloud的Python库
##安装
为了安装Docker Cloud Python库,您可以使用PIP安装:
pip install python-dockercloud
它将安装一个名为dockercloud的python模块,您可以使用它与api接口。
##授权
可以通过以下方式配置身份验证:
在python初始化代码中手动设置它:
import dockercloud dockercloud.user = “username” dockercloud.apikey = “apikey”
使用docker cli登录,库会自动读取配置文件:
$ docker login
设置环境变量dockerCloud用户和dockerCloud API键:
export DOCKERCLOUD_USER=username export DOCKERCLOUD_APIKEY=apikey
##可选参数
您可以使用dockerCloud reconnection间隔变量设置重新连接间隔(整数,以秒为单位):
export DOCKERCLOUD_RECONNECTION_INTERVAL=240
会话使用的套接字可能被某个对等方关闭。要防止“读取超时”问题,应使用此选项。
可能值:
- -1(默认情况下)表示没有重新连接(通常是正常工作的)
- 0表示在每次请求时重新连接
- 任何正值都表示如果最后两个请求之间的时间差大于该值,则将重新打开连接
##命名空间
要支持团队和组织,可以通过以下方式指定命名空间:
在python代码中设置:
import dockercloud dockercloud.namespace = “yourteam”
在环境变量中设置:
export DOCKERCLOUD_NAMESPACE=yourteam
##错误
http api中的错误将返回4xx和5xx范围内的状态代码。
python库将检测此状态代码,并使用错误消息引发apierror异常,调用应用程序应相应地处理该异常。
##快速示例
###服务
>>> import dockercloud >>> dockercloud.Service.list() [<dockercloud.api.service.Service object at 0x10701ca90>, <dockercloud.api.service.Service object at 0x10701ca91>] >>> service = dockercloud.Service.fetch("fee900c6-97da-46b3-a21c-e2b50ed07015") <dockercloud.api.service.Service object at 0x106c45c10> >>> service.name "my-python-app" >>> service = dockercloud.Service.create(image="dockercloud/hello-world", name="my-new- app", target_num_containers=2) >>> service.save() True >>> service.target_num_containers = 3 >>> service.save() True >>> service.stop() True >>> service.start() True >>> service.delete() True
###容器
>>> import dockercloud >>> dockercloud.Container.list() [<dockercloud.api.container.Container object at 0x10701ca90>, <dockercloud.api.container.Container object at 0x10701ca91>] >>> container = dockercloud.Container.fetch("7d6696b7-fbaf-471d-8e6b-ce7052586c24") <dockercloud.api.container.Container object at 0x10701ca90> >>> container.public_dns = "my-web-app.example.com" >>> container.save() True >>> container.stop() True >>> container.start() True >>> container.logs() "2014-03-24 23:58:08,973 CRIT Supervisor running as root (no user in config file) [...]" >>> container.delete() True