python - 运行Docker容器的Python脚本

标签 python docker dockerpy

我想编写一个运行docker容器的python脚本,然后显示该特定容器的日志,我使用了一些正在为我工​​作,启动或停止容器的功能。有人可以帮我显示容器的日志吗?
我试图使用container.logs()函数,但是它对我不起作用,我也在尝试研究docker-py库!
我对python不太了解,将不胜感激任何帮助!

#!/usr/bin/python
import docker
c = docker.Client(base_url='unix://var/run/docker.sock',version='1.12',timeout=10)
ctr = c.create_container('ubuntu:16.04') 
c.start(ctr)

最佳答案

您正在使用旧的Docker客户端。在下面运行以解决该问题

pip uninstall docker-py
pip install docker

完成后,您可以使用以下内容
import docker

c = docker.DockerClient(base_url='unix://var/run/docker.sock',timeout=10)
ctr = c.containers.run('ubuntu:16.04',command="bash -c ' for((i=1;i<=10;i+=2)); do echo Welcome $i times; sleep 10; done'", detach=True) 
logs = ctr.logs(stream=True)

for line in logs:
    print(line)

关于python - 运行Docker容器的Python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46150231/

相关文章:

python - 在不获取 GIL 的情况下在 Cython 中分配中间多维数组

python - 禁用微调器的背景颜色

python - MLT 多媒体框架的 Python 绑定(bind)文档

docker - dockerfile:无法运行命令

docker - 使用Django cookiecutter与Traefik和Docker进行基本身份验证

python - 如何从 dockerpy 中的 docker-run 管道标准输出

python - docker -py : How to bind an IP address to a container

python - 创建小写单词(将大写字母转换为小写字母)的功能无法按预期工作

Docker 无法连接到容器暴露端口

python - 使用 Python SDK 等待 Docker 容器开始运行