SDK1 - 了解Docker-api的作用

包下载:https://pypi.python.org/packages/20/73/3bb05004dcc734182d57a1c8a802732e05788678a71bfa12348a614d5d73/docker-2.6.1.tar.gz#md5=be4c90ee936ad0af4c45532616bf8b52
教程:
https://docker-py.readthedocs.io/en/stable/

想要和docker守护进程进程通信,我们必须先实例化一个客户端。你可是以使用docker.from_env()连接默认的socket或者自己配置的环境变量。

#导入模块
import docker
#实例化一个客户端
client = docker.from_env()


我们可以利用这个客户端运行容器
client.containers.run("ubuntu","echo hello world")

使用容器在后台运行:
client.containers.run("bfirsh/reticulate-splines", detach=True)
#这里要注意了,很多人会以为为什么我用自己的容器就不能在后台运行了,那是因为要理解docker的一个机制,他在我们执行的命令执行后容器就会停止,而我们上述的容器,默认运行时会运行一个脚本,这个脚本简单理解为一个while无限循环。所以不会停止。


我们可以简单的管理容器。
client.containers.list()

container = client.containers.get("45e6d2de7c54")

container.attrs['Config']['Image']
container.attrs['Config']['Cmd']

container.logs()

container.stop()

我们可以查看日志,循环打印出日志内容
for line in container.logs(stream=True):
    print(line.strip())


我们可以简单的管理镜像
client.images.pull("nginx")

#但是由于我们处于天朝和凡人之间的网络容易出问题。

列出所有镜像
client.images.list()

 

posted @ 2017-11-24 10:49  Vperson  阅读(937)  评论(0编辑  收藏  举报