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的方法。如有大神,请留言教导我。