python docker sdk_Docker-py 的使用

本文介绍了如何通过Python的Docker SDK与Docker Engine API交互,实现启动容器来运行程序。示例代码展示了如何创建并管理容器,包括挂载卷、设置工作目录、指定用户等,并提供了等待容器退出并获取日志的函数。此外,还提及了对服务的初步操作,但未给出完整的服务状态判断代码,表示作者正在进一步学习API。
摘要由CSDN通过智能技术生成

Docker SDK for Python

A Python library for the Docker Engine API

先说明一下,需求是通过python 调用docker daemon,做到启动一个人服务或者容器,去运行一个程序。

话不多说,先贴上使用容器部分的代码

import docker

cli = docker.from_env()  # 使用本地的docker deamon

py_container = cli.containers.run(  #运行一个容器

image='python:3',

command='python hello.py',

volumes={'/opt/':{'bind':'/opt','mode':'rw'}},

name='helloworld-dockerpy1',

working_dir='/opt',

detach=True,

stdout=True,

stderr=True,

user='root',

remove=False

)

def wait_container():  #判断容器退出后,提取log

if py_container in cli.containers.list(filters={'status':'exited'}):

with open('/tmp/py_log.txt', 'a') as f:

f.write(str(py_container.logs()))

else:

wait_container()

wait_container()

print(str(py_container.logs()))

py_container.remove()

下面是使用服务的部分代码

还没有解决判断service中容器状态的参数,还在学习APIClient这个调用本地docker daemon的方法。如有大神,请留言教导我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值